Jak usunąć exif z JPG bez utraty jakości obrazu?

Mam aplikację do udostępniania zdjęć PHP, w której obrazy przesyłane przez użytkowników są zmieniane na różne formaty kciuków za pomocą ImageMagick.

Jako pozornie „inteligentny” sposób oszczędzania na rozmiarze pliku, usuwam informacje exif z tych kciuków w następujący sposób:

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

To działa. Usuwa informacje EXIF, gdzie kciuki 30 KB oszczędzają 12 KB i stają się 18 KB. Znacząca oszczędność przy wyświetlaniu wielu takich kciuków na jednej stronie.

Problem polega jednak na tym, że działa trochę zbyt dobrze. Uzyskane obrazy wydają się tracić wiele informacji o kolorze i wyglądają „płasko” w porównaniu z wersjami niepobranymi.

W oparciu o moje dotychczasowe badania moja teoria mówi, że jedno lub oba z poniższych stwierdzeń są prawdziwe:

Imagick wyrzuca istotne informacje o profilu kolorów w ramach procesu usuwaniaImagick rekompresuje obraz po zapisaniu, tracąc jakość

Niezależnie od przyczyny problemu szukam sposobu na usunięcie informacji EXIF ​​w taki sposób, aby nie wpływało to na jakość obrazu ani na sam kolor.

Czy to możliwe?

Aktualizacja:

Na podstawie odpowiedzi Geralda Schneidera próbowałem wymusić ustawienie jakości na 100% przed „rozebraniem” obrazu:

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

Niestety problem pozostaje. Poniżej znajduje się przykładowe wyjście, w którym pomimo ustawienia jakości na 100% obrazy są nadal spłaszczone.

questionAnswers(2)

yourAnswerToTheQuestion