Проблема с использованием функции php imagecreatefromjpeg для изображения, имеющего цветовой профиль Adobe1998 - PullRequest
0 голосов
/ 27 августа 2009

Я использовал следующий код для создания изображения JPEG с использованием существующих изображений. Эти изображения использовали встроенный цветовой профиль, цветовой профиль Adobe1998.

header("Content-type: image/jpeg");
$src = imagecreatefromjpeg($upfile);
$dst = imagecreatetruecolor($tn_width, $tn_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
imagejpeg($dst,NULL,100);
imagedestroy($src);
imagedestroy($dst);

Проблема здесь в том, что при отображении изображения встроенный цветовой профиль не виден. Может кто-нибудь мне помочь? В чем может быть проблема?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 27 августа 2009

imagecratefromjpeg () заставляет нас использовать GD2-Lib, который, похоже, не поддерживает цветовые профили. Вам следует рассмотреть возможность использования imagemagick для изменения размера вашего изображения следующим образом:

convert mypicture.jpg -resize 50%  resized.jpg

Цветовой профиль должен оставаться на изображении.

0 голосов
/ 27 августа 2009

Цветовые профили - это фрагменты информации, внедренные в изображение, специфическое для носителя, который использовался изначально (в основном соответствует цветовому профилю для вашего монитора), поэтому при открытии того же изображения на другом носителе цвета будут корректироваться после откройте его, чтобы оно более точно соответствовало тому, что вы изначально видели на мониторе.

Попробуйте использовать convert как schneck sugested, и если это не сработает, вы также можете попробовать GIMP из командной строки. Я никогда не использовал его из строки cmd, но он поддерживает цветовые профили, и я знаю, что у него есть некоторые опции для пакетного преобразования.

...