ImageMagick 保留 Exif 数据

inr*_*rob 4 resize exif imagemagick

我有一个调整大小的功能,它的主要工作是正确的,但不保存原始图像文件附带的 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');
Run Code Online (Sandbox Code Playgroud)

请注意,如果我print_r($exifDataArray);显示了 exif 数据要进行更改,我将输入 'Exif:Make'、'BLABLABLA' 并查看新的 exif 数据是否写入图像,并且写入正确

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

有人可以帮忙吗?有没有办法将exif数据保留在图像上?

小智 5

似乎错误不是第一次出现

我目前使用的解决方法:

exiftool -overwrite_original_in_place -tagsFromFile $source_file $converted_file
Run Code Online (Sandbox Code Playgroud)