我们在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 :(得分:4)
RGB不是颜色配置文件,它是一个颜色空间。有效的颜色配置文件将是(例如)sRGB和Adobe RGB。如果您检查链接到的图像,您将看到原始图像嵌入了sRGB IEC61966-2.1颜色配置文件,并且调整大小没有颜色配置文件,因此它将根据假设具有的配置文件以不同方式显示。
不幸的是,我不认为PHP中的GD图像功能会关注颜色配置文件。您可以尝试通过Photoshop保存图像,然后将它们转换为通用sRGB配置文件,或使用ImageMagick进行大小调整(我相信 可以识别颜色配置文件)。