• imagemagick and XMP image data

    From Eli the Bearded@*@eli.users.panix.com to comp.os.linux.misc on Mon Feb 2 20:48:17 2026
    From Newsgroup: comp.os.linux.misc

    I'm seeing reports that the imagemagick module for PHP 7 could read XMP
    tags ( https://en.wikipedia.org/wiki/Extensible_Metadata_Platform ) from
    jpegs, but PHP 8 / mod imagick, at least as packaged by Debian, cannot.

    I have personally verified the the Debian PHP 8 cannot read XMP tags,
    code and output below for this test image, which has XMP data added by
    the commandline exiftool, on Debian.

    https://qaz.wtf/tmp/phonebag.jpg

    (thumbnail sized image, with metadata copied from fullsize)

    My questions, before I file bug reports:

    Is this a regression? I don't have older versions to test myself.

    Is there a documented reason for excluding XMP now? Maybe some security
    thing?

    I also don't know if this is an Imagemagick bug or a Imagemagick as
    packaged by Debian bug. I've verified the 'identify' tool in the
    Imagemagick package produces the same results as I see in PHP, and the Imagemagick code implies XMP data should work.

    MagickCore/property.c line 1828:

    static void GetXMPProperty(const Image *image,const char *property)

    Looks like a fully fleshed out get and parse XMP XML implementation.

    The reason I want specifically the PHP route to work is for a gallery
    tool written in PHP.

    Metadata seen by exiftool:

    ExifTool Version Number : 13.25
    File Name : phonebag.jpg
    Directory : /tmp
    File Size : 31 kB
    File Modification Date/Time : 2026:02:02 11:42:38-08:00
    File Access Date/Time : 2026:02:02 12:06:46-08:00
    File Inode Change Date/Time : 2026:02:02 11:42:38-08:00
    File Permissions : -rw-rw-r--
    File Type : JPEG
    File Type Extension : jpg
    MIME Type : image/jpeg
    JFIF Version : 1.01
    Exif Byte Order : Big-endian (Motorola, MM)
    Image Description :
    Make : Unihertz
    Camera Model Name : Jelly Max
    Orientation : Horizontal (normal)
    X Resolution : 72
    Y Resolution : 72
    Resolution Unit : inches
    Software : MediaTek Camera Application
    Modify Date : 2026:02:01 12:13:51
    Y Cb Cr Positioning : Centered
    Exposure Time : 1/50
    F Number : 1.7
    Exposure Program : Program AE
    ISO : 398
    Sensitivity Type : ISO Speed
    Recommended Exposure Index : 0
    Exif Version : 0220
    Date/Time Original : 2026:01:26 21:22:42
    Create Date : 2026:01:26 21:22:42
    Components Configuration : Y, Cb, Cr, -
    Shutter Speed Value : 1/50
    Aperture Value : 1.7
    Brightness Value : 0.8
    Exposure Compensation : -1/2
    Max Aperture Value : 1.7
    Metering Mode : Center-weighted average
    Light Source : Other
    Focal Length : 5.2 mm
    User Comment : Yaw:36.949326,Pitch:-10.665366044603356,Roll:-5.873881337506418
    Sub Sec Time : 307
    Sub Sec Time Original : 307
    Sub Sec Time Digitized : 307
    Flashpix Version : 0100
    Color Space : sRGB
    Exif Image Width : 4096
    Exif Image Height : 3072
    Exposure Mode : Auto
    White Balance : Auto
    Digital Zoom Ratio : 1
    Focal Length In 35mm Format : 0 mm
    Scene Capture Type : Standard
    GPS Version ID : 2.3.0.0
    GPS Img Direction Ref : Magnetic North
    GPS Img Direction : 36.95
    XMP Toolkit : Image::ExifTool 13.25
    Description : Purse in a store window with an appliqué phone dial and telephone handset as handle.
    Subject : handbag, faux, phone, store window
    Title : Hand Bag Set
    Flash Fired : False
    Flash Function : False
    Flash Mode : Off
    Flash Red Eye Mode : False
    Flash Return : No return detection
    Interoperability Index : R98 - DCF basic file (sRGB)
    Compression : JPEG (old-style)
    Image Width : 320
    Image Height : 279
    Encoding Process : Baseline DCT, Huffman coding
    Bits Per Sample : 8
    Color Components : 3
    Y Cb Cr Sub Sampling : YCbCr4:2:0 (2 2)
    Aperture : 1.7
    Image Size : 320x279
    Megapixels : 0.089
    Shutter Speed : 1/50
    Create Date : 2026:01:26 21:22:42.307
    Date/Time Original : 2026:01:26 21:22:42.307
    Modify Date : 2026:02:01 12:13:51.307
    Flash : Off, Did not fire
    Focal Length : 5.2 mm
    Light Value : 5.2

    Note the "Description", "Subject", and "Title", which are in the XMP data. (Verifable with a hex editor on the image I have linked above.)

    Exif reported using PHP exif_read_data():

    Array
    (
    [FileName] => phonebag.jpg
    [FileDateTime] => 1770061840
    [FileSize] => 30800
    [FileType] => 2
    [MimeType] => image/jpeg
    [SectionsFound] => ANY_TAG, IFD0, EXIF, GPS
    [COMPUTED] => Array
    (
    [html] => width="320" height="279"
    [Height] => 279
    [Width] => 320
    [IsColor] => 1
    [ByteOrderMotorola] => 1
    [ApertureFNumber] => f/1.7
    [UserComment] => Yaw:36.949326,Pitch:-10.665366044603356,Roll:-5.873881337506418
    [UserCommentEncoding] => ASCII
    )

    [ImageDescription] =>
    [Make] => Unihertz
    [Model] => Jelly Max
    [Orientation] => 1
    [XResolution] => 72/1
    [YResolution] => 72/1
    [ResolutionUnit] => 2
    [Software] => MediaTek Camera Application
    [DateTime] => 2026:02:01 12:13:51
    [YCbCrPositioning] => 1
    [Exif_IFD_Pointer] => 242
    [GPS_IFD_Pointer] => 804
    [ExposureTime] => 1/50
    [FNumber] => 17/10
    [ExposureProgram] => 2
    [ISOSpeedRatings] => 398
    [UndefinedTag:0x8830] => 3
    [UndefinedTag:0x8832] => 0
    [ExifVersion] => 0220
    [DateTimeOriginal] => 2026:01:26 21:22:42
    [DateTimeDigitized] => 2026:01:26 21:22:42
    [ComponentsConfiguration] =>
    [ShutterSpeedValue] => 11299/2002
    [ApertureValue] => 8747/5713
    [BrightnessValue] => 4/5
    [ExposureBiasValue] => -1/2
    [MaxApertureValue] => 8747/5713
    [MeteringMode] => 2
    [LightSource] => 255
    [FocalLength] => 26/5
    [UserComment] => ASCIIYaw:36.949326,Pitch:-10.665366044603356,Roll:-5.873881337506418
    [SubSecTime] => 307
    [SubSecTimeOriginal] => 307
    [SubSecTimeDigitized] => 307
    [FlashPixVersion] => 0100
    [ColorSpace] => 1
    [ExifImageWidth] => 4096
    [ExifImageLength] => 3072
    [ExposureMode] => 0
    [WhiteBalance] => 0
    [DigitalZoomRatio] => 1/1
    [FocalLengthIn35mmFilm] => 0
    [SceneCaptureType] => 0
    [GPSVersion] =>
    [GPSImgDirectionRef] => M
    [GPSImgDirection] => 739/20
    )

    No XMP.

    Exif using the imagick module in PHP:

    date:create => 2026-02-02T19:50:40+00:00
    date:modify => 2026-02-02T19:50:40+00:00
    date:timestamp => 2026-02-02T20:10:55+00:00
    exif:ApertureValue => 8747/5713
    exif:BrightnessValue => 4/5
    exif:ColorSpace => 1
    exif:ComponentsConfiguration => ...
    exif:DateTime => 2026:02:01 12:13:51
    exif:DateTimeDigitized => 2026:01:26 21:22:42
    exif:DateTimeOriginal => 2026:01:26 21:22:42
    exif:DigitalZoomRatio => 1/1
    exif:ExifOffset => 242
    exif:ExifVersion => 0220
    exif:ExposureBiasValue => -1/2
    exif:ExposureMode => 0
    exif:ExposureProgram => 2
    exif:ExposureTime => 1/50
    exif:FlashPixVersion => 0100
    exif:FNumber => 17/10
    exif:FocalLength => 26/5
    exif:FocalLengthIn35mmFilm => 0
    exif:GPSImgDirection => 739/20
    exif:GPSImgDirectionRef => M
    exif:GPSInfo => 804
    exif:GPSVersionID => ....
    exif:ImageDescription =>
    exif:LightSource => 255
    exif:Make => Unihertz
    exif:MaxApertureValue => 8747/5713
    exif:MeteringMode => 2
    exif:Model => Jelly Max
    exif:Orientation => 1
    exif:PhotographicSensitivity => 398
    exif:PixelXDimension => 4096
    exif:PixelYDimension => 3072
    exif:RecommendedExposureIndex => 0
    exif:ResolutionUnit => 2
    exif:SceneCaptureType => 0
    exif:SensitivityType => 3
    exif:ShutterSpeedValue => 11299/2002
    exif:Software => MediaTek Camera Application
    exif:SubSecTime => 307
    exif:SubSecTimeDigitized => 307
    exif:SubSecTimeOriginal => 307
    exif:UserComment => ASCII
    exif:WhiteBalance => 0
    exif:XResolution => 72/1
    exif:YCbCrPositioning => 1
    exif:YResolution => 72/1
    exifEX:InteroperabilityIndex => R98
    jpeg:colorspace => 2
    jpeg:sampling-factor => 2x2,1x1,1x1
    tiff:Compression => 6
    tiff:ImageLength => 1894
    tiff:ImageWidth => 2173
    tiff:YCbCrPositioning => 2
    xmp:Flash => 0

    Versions of software used:

    $ grep VERSION /etc/os-release
    VERSION_ID="13"
    VERSION="13 (trixie)"
    VERSION_CODENAME=trixie
    DEBIAN_VERSION_FULL=13.3

    $ apt list --installed |egrep 'magick|php[^/]*common|exiftool'

    WARNING: apt does not have a stable CLI interface. Use with caution in
    scripts.

    imagemagick-7-common/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 all [installed,automatic]
    imagemagick-7.q16/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 amd64 [installed,automatic]
    imagemagick/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 amd64 [installed] libimage-exiftool-perl/stable,now 13.25+dfsg-1 all [installed] libmagickcore-7.q16-10-extra/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 amd64 [installed,automatic]
    libmagickcore-7.q16-10/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 amd64 [installed,automatic]
    libmagickwand-7.q16-10/stable-security,now 8:7.1.1.43+dfsg1-1+deb13u5 amd64 [installed,automatic]
    php-common/stable,now 2:96 all [installed]
    php8.4-common/stable-security,now 8.4.16-1~deb13u1 amd64 [installed,automatic] php8.4-imagick/stable,now 3.8.0-2 amd64 [installed]

    Here's the PHP code to show the image metadata:

    <?php
    // +-----------------------------------------------------------------------+
    // | This file is part of Piwigo. |
    // | |
    // | For copyright and license information, please view the COPYING.txt |
    // | file that was distributed with this source code. |
    // +-----------------------------------------------------------------------+

    // The next line has been changed from the Piwigo original
    $filename = 'phonebag.jpg';

    echo 'Informations are read from '.$filename.'<br><br><br>';

    /**
    * return a cleaned IPTC value
    *
    * @param string value
    * @return string
    */
    function clean_iptc_value($value)
    {
    // strip leading zeros (weird Kodak Scanner software)
    while ( isset($value[0]) and $value[0] == chr(0))
    {
    $value = substr($value, 1);
    }
    // remove binary nulls
    $value = str_replace(chr(0x00), ' ', $value);

    return $value;
    }

    $iptc_result = array();
    $imginfo = array();
    getimagesize($filename, $imginfo);
    if (isset($imginfo['APP13']))
    {
    $iptc = iptcparse($imginfo['APP13']);
    if (is_array($iptc))
    {
    foreach (array_keys($iptc) as $iptc_key)
    {
    if (isset($iptc[$iptc_key][0]))
    {
    if ($iptc_key == '2#025')
    {
    $value = implode(
    ',',
    array_map(
    'clean_iptc_value',
    $iptc[$iptc_key]
    )
    );
    }
    else
    {
    $value = clean_iptc_value($iptc[$iptc_key][0]);
    }

    $iptc_result[$iptc_key] = $value;
    }
    }
    }

    echo 'IPTC Fields in '.$filename.'<br>';
    $keys = array_keys($iptc_result);
    sort($keys);
    foreach ($keys as $key)
    {
    echo '<br>'.$key.' = '.$iptc_result[$key];
    }
    }
    else
    {
    echo 'no IPTC information';
    }

    echo '<br><br><br>';
    echo 'EXIF Fields in '.$filename.'<br>';
    $exif = exif_read_data($filename);
    echo '<pre>';
    print_r($exif);
    echo '</pre>';

    #
    # Display XMP metadata using ImageMagick PHP extension
    #

    print "<h3>XMP data in '{$filename}'</h3><br />" ;
    print ' (Requires Imagemagick PHP extension)<br />' ;
    print '<pre>' ;

    if( extension_loaded('imagick') && class_exists("Imagick") ){ //Check ImageMagick is installed

    // create new Imagick object from image
    $sampleIM = new imagick($filename) ;

    // get the XMP data
    // The next line has been changed from the Piwigo original
    $sampleXMP = $sampleIM -> getImageProperties("*") ;

    // If there's data, then loop through the XMP array
    if ( count($sampleXMP) ) {
    foreach ($sampleXMP as $XMPname => $XMPproperty) {
    print "{$XMPname} => {$XMPproperty} <br />\n" ;
    }
    }else{
    print 'No data <br /> ';
    }
    print '[end of XMP]' ;

    }else{

    print 'ImageMagick not detected or disabled' ;

    }

    print '</pre>' ;



    There is a Piwigo forum, but this issue doesn't seem to be in Piwigo's
    code, so they don't seem capable of helping.

    Elijah
    ------
    very few gallery tools support image tags, Piwigo is one
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.linux.misc on Mon Feb 2 21:48:08 2026
    From Newsgroup: comp.os.linux.misc

    On Mon, 2 Feb 2026 20:48:17 -0000 (UTC), Eli the Bearded wrote:

    I also don't know if this is an Imagemagick bug or a Imagemagick as
    packaged by Debian bug.

    I would say neither:

    ldo@theon:~> magick identify -verbose https://qaz.wtf/tmp/phonebag.jpg
    Image:
    Filename: //qaz.wtf/tmp/phonebag.jpg
    Base filename: phonebag.jpg
    Permissions: rw-r--r--
    Format: JPEG (Joint Photographic Experts Group JFIF format)
    Mime type: image/jpeg
    Class: DirectClass
    Geometry: 320x279+0+0
    Resolution: 72x72
    Print size: 4.44444x3.875
    Units: PixelsPerInch
    Colorspace: sRGB
    Type: TrueColor
    Base type: Undefined
    Endianness: Undefined
    Depth: 8-bit
    Channels: 3.0
    Channel depth:
    Red: 8-bit
    Green: 8-bit
    Blue: 8-bit
    Channel statistics:
    Pixels: 89280
    Red:
    min: 6 (0.0235294)
    max: 255 (1)
    mean: 191.437 (0.750734)
    median: 198 (0.776471)
    standard deviation: 55.4034 (0.217268)
    kurtosis: -0.101819
    skewness: -0.788
    entropy: 0.890099
    Green:
    min: 0 (0)
    max: 255 (1)
    mean: 123.457 (0.484145)
    median: 115 (0.45098)
    standard deviation: 69.9162 (0.274181)
    kurtosis: -1.09388
    skewness: 0.337273
    entropy: 0.97428
    Blue:
    min: 0 (0)
    max: 255 (1)
    mean: 92.6522 (0.363342)
    median: 78 (0.305882)
    standard deviation: 71.733 (0.281306)
    kurtosis: -0.634448
    skewness: 0.658432
    entropy: 0.970386
    Image statistics:
    Overall:
    min: 0 (0)
    max: 255 (1)
    mean: 135.849 (0.53274)
    median: 130.333 (0.511111)
    standard deviation: 65.6842 (0.257585)
    kurtosis: -0.61005
    skewness: 0.069235
    entropy: 0.944922
    Rendering intent: Perceptual
    Gamma: 0.454545
    Chromaticity:
    red primary: (0.64,0.33,0.03)
    green primary: (0.3,0.6,0.1)
    blue primary: (0.15,0.06,0.79)
    white point: (0.3127,0.329,0.3583)
    Matte color: grey74
    Background color: white
    Border color: srgb(223,223,223)
    Transparent color: black
    Interlace: None
    Intensity: Undefined
    Compose: Over
    Page geometry: 320x279+0+0
    Dispose: Undefined
    Iterations: 0
    Compression: JPEG
    Quality: 75
    Orientation: TopLeft
    Profiles:
    Profile-exif: 860 bytes
    Profile-xmp: 4411 bytes
    Properties:
    date:create: 2026-02-02T21:45:50+00:00
    date:modify: 2026-02-02T21:45:50+00:00
    date:timestamp: 2026-02-02T21:45:50+00:00
    exif:ApertureValue: 8747/5713
    exif:BrightnessValue: 4/5
    exif:ColorSpace: 1
    exif:ComponentsConfiguration: ...
    exif:DateTime: 2026:02:01 12:13:51
    exif:DateTimeDigitized: 2026:01:26 21:22:42
    exif:DateTimeOriginal: 2026:01:26 21:22:42
    exif:DigitalZoomRatio: 1/1
    exif:ExifOffset: 242
    exif:ExifVersion: 0220
    exif:ExposureBiasValue: -1/2
    exif:ExposureMode: 0
    exif:ExposureProgram: 2
    exif:ExposureTime: 1/50
    exif:FlashPixVersion: 0100
    exif:FNumber: 17/10
    exif:FocalLength: 26/5
    exif:FocalLengthIn35mmFilm: 0
    exif:GPSImgDirection: 739/20
    exif:GPSImgDirectionRef: M
    exif:GPSInfo: 804
    exif:GPSVersionID: ....
    exif:ImageDescription:
    exif:LightSource: 255
    exif:Make: Unihertz
    exif:MaxApertureValue: 8747/5713
    exif:MeteringMode: 2
    exif:Model: Jelly Max
    exif:PhotographicSensitivity: 398
    exif:PixelXDimension: 4096
    exif:PixelYDimension: 3072
    exif:RecommendedExposureIndex: 0
    exif:SceneCaptureType: 0
    exif:SensitivityType: 3
    exif:ShutterSpeedValue: 11299/2002
    exif:Software: MediaTek Camera Application
    exif:SubSecTime: 307
    exif:SubSecTimeDigitized: 307
    exif:SubSecTimeOriginal: 307
    exif:UserComment: ASCII
    exif:WhiteBalance: 0
    exif:YCbCrPositioning: 1
    exifEX:InteroperabilityIndex: R98
    jpeg:colorspace: 2
    jpeg:sampling-factor: 2x2,1x1,1x1
    signature: 43c84528af7954ea6550172f24ce9b25f6f946a37966b6f4a13ceb07ae8b2105
    tiff:Compression: 6
    tiff:ImageLength: 1894
    tiff:ImageWidth: 2173
    tiff:YCbCrPositioning: 2
    xmp:Flash: 0
    Artifacts:
    verbose: true
    Tainted: False
    Filesize: 30800B
    Number pixels: 89280
    Pixel cache type: Memory
    Pixels per second: 65.7759MP
    User time: 0.000u
    Elapsed time: 0:01.001
    Version: ImageMagick 7.1.2-13 Q16 x86_64 23522 https://imagemagick.org

    That ImageMagick package is current as of Debian Unstable from about a
    week ago.
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Eli the Bearded@*@eli.users.panix.com to comp.os.linux.misc on Mon Feb 2 23:00:08 2026
    From Newsgroup: comp.os.linux.misc

    In comp.os.linux.misc, Lawrence DOliveiro <ldo@nz.invalid> wrote:
    On Mon, 2 Feb 2026 20:48:17 -0000 (UTC), Eli the Bearded wrote:

    I also don't know if this is an Imagemagick bug or a Imagemagick as packaged by Debian bug.

    I would say neither:

    ldo@theon:~> magick identify -verbose https://qaz.wtf/tmp/phonebag.jpg
    Image:
    Filename: //qaz.wtf/tmp/phonebag.jpg
    [snip]

    That doesn't contradict my findings in any way. Your example output does
    not have any of the XMP data:

    <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 13.25'>
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>

    <rdf:Description rdf:about=''
    xmlns:dc='http://purl.org/dc/elements/1.1/'>
    <dc:description>
    <rdf:Alt>
    <rdf:li xml:lang='x-default'>Purse in a store window with an appliqué phone dial and telephone handset as handle.</rdf:li>
    </rdf:Alt>
    </dc:description>
    <dc:subject>
    <rdf:Bag>
    <rdf:li>handbag</rdf:li>
    <rdf:li>faux</rdf:li>
    <rdf:li>phone</rdf:li>
    <rdf:li>store window</rdf:li>
    </rdf:Bag>
    </dc:subject>
    <dc:title>
    <rdf:Alt>
    <rdf:li xml:lang='x-default'>Hand Bag Set</rdf:li>
    </rdf:Alt>
    </dc:title>
    </rdf:Description>

    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.linux.misc on Mon Feb 2 23:21:16 2026
    From Newsgroup: comp.os.linux.misc

    On Mon, 2 Feb 2026 23:00:08 -0000 (UTC), Eli the Bearded wrote:

    That doesn't contradict my findings in any way. Your example output does
    not have any of the XMP data:

    I showed you exactly what ImageMagick does, no more, no less.
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Eli the Bearded@*@eli.users.panix.com to comp.os.linux.misc on Tue Feb 3 01:22:20 2026
    From Newsgroup: comp.os.linux.misc

    In comp.os.linux.misc, Lawrence DOliveiro <ldo@nz.invalid> wrote:
    I showed you exactly what ImageMagick does, no more, no less.

    s/what /what one other install of /

    I see hints on line that this _used_ to work. I suspect few people try
    to do it, so a regression could go unnoticed. I'm trying to find
    evidence that it did once work.

    And it could be something in (or missing from) the system policy.xml file governing this.

    Elijah
    ------
    finds imagemagick documentation to be piss poor
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.linux.misc on Tue Feb 3 01:30:34 2026
    From Newsgroup: comp.os.linux.misc

    On Tue, 3 Feb 2026 01:22:20 -0000 (UTC), Eli the Bearded wrote:

    In comp.os.linux.misc, Lawrence DOliveiro <ldo@nz.invalid> wrote:

    I showed you exactly what ImageMagick does, no more, no less.

    s/what /what one other install of /

    To my knowledge, ImageMagick has never supported any kind of XML-based metadata.

    <https://stackoverflow.com/questions/24393446/is-there-a-way-to-read-write-xmp-metadata-using-imagemagick>
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Eli the Bearded@*@eli.users.panix.com to comp.os.linux.misc on Tue Feb 3 02:23:19 2026
    From Newsgroup: comp.os.linux.misc

    In comp.os.linux.misc, Lawrence DOliveiro <ldo@nz.invalid> wrote:
    To my knowledge, ImageMagick has never supported any kind of XML-based metadata.

    Okay.

    <https://stackoverflow.com/questions/24393446/is-there-a-way-to-read-write-xmp-metadata-using-imagemagick>

    The 2014 answer says no, the 2018 answer says here's how to do it, but
    without any XML parsing by IM. It's now 2026, and a lot could have
    changed.

    But as another point of reference I found a Ubuntu 22.04 system with Imagemagick 6.9.11 installed. That also does not read the XMP tags.

    Increasingly looking like this just doesn't work.

    Elijah
    ------
    a little surprised
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.os.linux.misc on Tue Feb 3 02:50:47 2026
    From Newsgroup: comp.os.linux.misc

    On Tue, 3 Feb 2026 02:23:19 -0000 (UTC), Eli the Bearded wrote:

    Increasingly looking like this just doesn't work.

    You seem to think it worked at some point, when it was doubtful it
    ever did.

    There are other tools better suited to dealing with metadata
    specifically. E.g.

    ldo@theon:~> exiv2 -PEX phonebag.jpg
    Exif.Image.ImageDescription Ascii 1
    Exif.Image.Make Ascii 9 Unihertz
    Exif.Image.Model Ascii 10 Jelly Max
    Exif.Image.Orientation Short 1 top, left
    Exif.Image.XResolution Rational 1 72
    Exif.Image.YResolution Rational 1 72
    Exif.Image.ResolutionUnit Short 1 inch
    Exif.Image.Software Ascii 28 MediaTek Camera Application
    Exif.Image.DateTime Ascii 20 2026:02:01 12:13:51
    Exif.Image.YCbCrPositioning Short 1 Centered
    Exif.Image.ExifTag Long 1 242
    Exif.Photo.ExposureTime Rational 1 1/50 s
    Exif.Photo.FNumber Rational 1 F1.7
    Exif.Photo.ExposureProgram Short 1 Auto
    Exif.Photo.ISOSpeedRatings Short 1 398
    Exif.Photo.SensitivityType Short 1 3
    Exif.Photo.RecommendedExposureIndex Long 1 0
    Exif.Photo.ExifVersion Undefined 4 2.20
    Exif.Photo.DateTimeOriginal Ascii 20 2026:01:26 21:22:42
    Exif.Photo.DateTimeDigitized Ascii 20 2026:01:26 21:22:42
    Exif.Photo.ComponentsConfiguration Undefined 4 YCbCr
    Exif.Photo.ShutterSpeedValue SRational 1 1/50 s
    Exif.Photo.ApertureValue Rational 1 F1.7
    Exif.Photo.BrightnessValue SRational 1 0.8
    Exif.Photo.ExposureBiasValue SRational 1 -1/2 EV
    Exif.Photo.MaxApertureValue Rational 1 F1.7
    Exif.Photo.MeteringMode Short 1 Center weighted average
    Exif.Photo.LightSource Short 1 Other light source
    Exif.Photo.FocalLength Rational 1 5.2 mm
    Exif.Photo.UserComment Undefined 71 charset=Ascii Yaw:36.949326,Pitch:-10.665366044603356,Roll:-5.873881337506418
    Exif.Photo.SubSecTime Ascii 4 307
    Exif.Photo.SubSecTimeOriginal Ascii 4 307
    Exif.Photo.SubSecTimeDigitized Ascii 4 307
    Exif.Photo.FlashpixVersion Undefined 4 1.00
    Exif.Photo.ColorSpace Short 1 sRGB
    Exif.Photo.PixelXDimension Short 1 4096
    Exif.Photo.PixelYDimension Short 1 3072
    Exif.Photo.ExposureMode Short 1 Auto
    Exif.Photo.WhiteBalance Short 1 Auto
    Exif.Photo.DigitalZoomRatio Rational 1 1.0
    Exif.Photo.FocalLengthIn35mmFilm Short 1 Unknown
    Exif.Photo.SceneCaptureType Short 1 Standard
    Exif.Image.GPSTag Long 1 804
    Exif.GPSInfo.GPSVersionID Byte 4 2.3.0.0
    Exif.GPSInfo.GPSImgDirectionRef Ascii 2 Magnetic direction
    Exif.GPSInfo.GPSImgDirection Rational 1 36.95
    Xmp.dc.description LangAlt 1 lang="x-default" Purse in a store window with an appliqué phone dial and telephone handset as handle.
    Xmp.dc.subject XmpBag 4 handbag, faux, phone, store window
    Xmp.dc.title LangAlt 1 lang="x-default" Hand Bag Set
    Xmp.exif.ComponentsConfiguration XmpSeq 4 YCbCr
    Xmp.exif.Flash XmpText 0 type="Struct"
    Xmp.exif.Flash/exif:Fired XmpText 5 False
    Xmp.exif.Flash/exif:Function XmpText 5 False
    Xmp.exif.Flash/exif:Mode XmpText 1 2
    Xmp.exif.Flash/exif:RedEyeMode XmpText 5 False
    Xmp.exif.Flash/exif:Return XmpText 1 0
    Xmp.exifEX.InteroperabilityIndex XmpText 3 R98
    Xmp.tiff.BitsPerSample XmpSeq 1 8
    Xmp.tiff.Compression XmpText 1 6
    Xmp.tiff.ImageLength XmpText 4 1894
    Xmp.tiff.ImageWidth XmpText 4 2173
    Xmp.tiff.YCbCrPositioning XmpText 1 Co-sited
    Xmp.tiff.YCbCrSubSampling XmpSeq 2 2, 2

    (Note this one couldn’t download the URL directly.)
    --- Synchronet 3.21b-Linux NewsLink 1.2
  • From Eli the Bearded@*@eli.users.panix.com to comp.os.linux.misc on Tue Feb 3 22:37:16 2026
    From Newsgroup: comp.os.linux.misc

    In comp.os.linux.misc, Lawrence DOliveiro <ldo@nz.invalid> wrote:
    On Tue, 3 Feb 2026 02:23:19 -0000 (UTC), Eli the Bearded wrote:
    Increasingly looking like this just doesn't work.
    You seem to think it worked at some point, when it was doubtful it
    ever did.

    Code from Piwigo implies that it did, but that code doesn't work.

    There are other tools better suited to dealing with metadata
    specifically. E.g.

    What apparently _does_ work with Imagemagick is just extracting the
    unparsed XML:

    $ magick phonebag.jpg xmp:
    <?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
    <x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 13.25'>
    <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>

    <rdf:Description rdf:about=''
    xmlns:dc='http://purl.org/dc/elements/1.1/'>
    <dc:description>
    <rdf:Alt>
    <rdf:li xml:lang='x-default'>Purse in a store window with an appliqué phone dial and telephone handset as handle.</rdf:li>
    </rdf:Alt>
    [...]


    You can apparently write the XMP XML in a similar fashion.

    Elijah
    ------
    has not tried writing
    --- Synchronet 3.21b-Linux NewsLink 1.2