【问题标题】:ImageMagick Preserve Exif DataImageMagick 保留 Exif 数据
【发布时间】:2014-03-20 13:39:35
【问题描述】:

我有一个调整大小的功能,它的主要工作是正确的,但不保存 原始图像文件附带的 exif 数据。一切似乎都是 正确,直到我调用 ->writeImage(); 函数,这似乎剥离了 exif 图片的数据。

$resizeimage= new Imagick($image);

$exifDataArray = $resizeimage->getImageProperties("exif:*");

$resizeimage->thumbnailImage($width,$height);

$resizeimage->setImageCompression(imagick::COMPRESSION_JPEG); 
$resizeimage->setImageCompressionQuality(90); 

echo $resizeimage->setImageProperty('Exif:Make', 'BLABLABLA');

$resizeimage->writeImage();


$updated= new Imagick($image);
echo $updated->getImageProperty('Exif:Make');

请注意,如果我 print_r($exifDataArray); 它会显示 exif 数据 为了进行更改,我输入了“Exif:Make”、“BLABLABLA”并查看 新的exif数据写入图片,并且正确写入

但是在我resizeimage->writeImage();之后 图像文件中不再存在 exif 数据。

有人可以帮忙吗?有什么办法可以保留图片上的exif数据?

【问题讨论】:

    标签: resize imagemagick exif


    【解决方案1】:

    似乎没有错误for the first time

    我目前使用的解决方法:

    exiftool -overwrite_original_in_place -tagsFromFile $source_file $converted_file
    

    【讨论】:

      【解决方案2】:

      如果要保留 exif 数据,则不应使用 thumbnailImage 图像方法。以下来自 ImageMagick (http://www.imagemagick.org/script/command-line-options.php#thumbnail) 的文档:

      -thumbnail geometry
      
      This is similar to -resize, except it is optimized for speed and any image
      profile, other than a color profile, is removed to reduce the thumbnail size.
      

      您应该改用 resizeImage 方法 (http://www.php.net/manual/en/imagick.resizeimage.php)

      【讨论】:

      • 似乎 -resize 也删除了旋转信息,至少从版本 6.8.6 开始
      • @Michael 看来6.9.10版本还是有这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2021-05-10
      相关资源
      最近更新 更多