2011-02-10 42 views
4

我們有一個非常標準的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); 
+0

圖像的位深度是多少? – 2011-02-10 21:10:50

+0

我很可能會說顏色配置文件問題。你可以在Photoshop中檢查原始圖像是否嵌入了配置文件? – 2011-02-10 21:13:33

回答

4

RGB不是顏色配置文件,這是一個色彩空間。有效的顏色配置文件將是(例如)sRGB和Adobe RGB。如果您檢查鏈接的圖像,您會看到原始版本嵌入了sRGB IEC61966-2.1顏色配置文件,並且調整大小沒有顏色配置文件,因此將根據它假定的配置文件顯示爲不同。

不幸的是,我不認爲在PHP的GD圖像功能不搭理顏色配置文件。您可以嘗試通過Photoshop中,他們正在轉化爲一個通用的sRGB模式節省了用於Web圖像,或者使用ImageMagick的做調整大小(我相信顏色配置文件感知)。