Изображение с измененным размером становится зеленоватым?Есть идеи? - PullRequest
4 голосов
/ 11 февраля 2011

У нас есть довольно стандартная реализация изменения размера изображения в PHP. Однако некоторые изображения имеют зеленоватый оттенок.

Вот оригинал: http://www.capitallightingfixture.com/product_images/3979WG-514.jpg

Вот измененный размер: http://www.capitallightingfixture.com/product_images/5-3979WG-514.jpg

Я проверил цветовой профиль на оригинальном jpg, и это RGB.

Вот часть изменения размера моего PHP:

    if (function_exists("gd_info")){
        $dst_img = imagecreatetruecolor($thumb_width,$thumb_height);    
        }else{
        $dst_img = imagecreate($thumb_width,$thumb_height);     
        }

    if(@imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_width,$thumb_height,$origw,$origh)){
        }else{
        imagecopyresized($dst_img,$src_img,0,0,0,0,$thumb_width,$thumb_height,$origw,$origh);
        }       
    imagedestroy($src_img);

        imagejpeg($dst_img, '', 85);

1 Ответ

4 голосов
/ 11 февраля 2011

RGB - это не цветовой профиль, это цвет пробел . Допустимые цветовые профили (например, sRGB и Adobe RGB). Если вы проверите изображения, с которыми вы связались, то увидите, что в оригинал встроен цветовой профиль sRGB IEC61966-2.1, а у измененного размера нет цветового профиля, поэтому он будет отображаться по-разному в зависимости от предполагаемого профиля.

К сожалению, я не думаю, что функции изображений GD в PHP обращают какое-либо внимание на цветовой профиль. Вы можете попытаться сохранить изображения для Интернета через Photoshop, где они преобразуются в общий профиль sRGB, или использовать ImageMagick для изменения размера (что, я считаю, * * * * * * * * * * * * * * * * * * *

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...