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)