ImageMagick Сохранение Exif данных

У меня есть функция изменения размера, которая выполняет свою основную работу правильно, но не сохраняет данные 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 на изображении?

2 ответа

Кажется, ошибка не там в первый раз.

Обходной путь, который я использую в данный момент:

exiftool -overwrite_original_in_place -tagsFromFile $source_file $converted_file

Вы не должны использовать thumbnailImage метод изображения, если вы хотите сохранить данные exif. Ниже приводится документация ImageMagick ( http://www.imagemagick.org/script/command-line-options.php):

-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)

Другие вопросы по тегам