Как удалить exif из JPG без потери качества изображения?

У меня есть приложение для обмена фотографиями в PHP, в котором загруженные пользователем изображения изменяются в различные форматы большого пальца с помощью ImageMagick.

В качестве, казалось бы, «умного» способа сэкономить на размере файла, я извлекаю exif-информацию из этих превью следующим образом:

$imagick = new Imagick($image);
$imagick->stripImage();
$imagick->writeImage($image);

Это работает. Это действительно удаляет информацию EXIF, где большие пальцы 30 КБ экономят 12 КБ и становятся 18 КБ. Значительная экономия при отображении множества таких больших пальцев на одной странице.

Проблема, однако, в том, что он работает слишком хорошо. Получающиеся изображения, кажется, теряют много информации о цвете и выглядят "плоскими" по сравнению с их неснятыми версиями.

Основываясь на моих исследованиях, моя теория состоит в том, что одно или оба из следующего верно:

Imagick выбрасывает важную информацию о цветовых профилях как часть процесса очисткиImagick сжимает изображение после сохранения, теряя качество

Независимо от причины проблемы, я ищу способ удалить информацию EXIF таким образом, чтобы она не влияла на качество изображения или сам цвет.

Это вообще возможно?

Обновить:

Основываясь на ответе Джеральда Шнайдера, я пытался довести настройку качества до 100% перед тем, как «снимать» изображение:

$imagick = new Imagick($image);
$imagick->setCompression(imagick::COMPRESSION_JPEG);
$imagick->setCompressionQuality(100);
$imagick->stripImage();
$imagick->writeImage($image);

К сожалению, проблема остается. Ниже приведен пример вывода, где, несмотря на установку качества на 100%, изображения все еще сглаживаются.

Ответы на вопрос(2)

Ваш ответ на вопрос