感谢您抽出宝贵时间阅读我的问题:
我正在使用以下代码来获取图像,然后更改颜色201,2,255(r,g,b) - 这是紫色的阴影然后输出图像。
$imgname = "input.gif";
$im = imagecreatefromgif ($imgname);
$index = imagecolorclosest ( $im, 201,2,255 ); // get White COlor
imagecolorset($im,$index,60,140,48); // SET NEW COLOR
$imgname = "output.gif";
imagegif($im, $imgname ); // save image as gif
imagedestroy($im);
这完美可以在这里看到:http://www.office-desks.co.uk/cache_images/test.php(前2张图片)
问题是当我尝试todo完全相同但使用jpeg而不是它不起作用..(底部2图像)
$imgname = "input.jpg";
$im = imagecreatefromjpeg ($imgname);
$index = imagecolorclosest ( $im, 201,2,255 ); // get pink/purple COlor
imagecolorset($im,$index,60,140,48); // SET NEW DECENT COLOR
$imgname = "output.jpg";
imagejpeg($im, $imgname ); // save image as gif
imagedestroy($im);
如果有人能帮助我解决这个问题,我将不胜感激。在此先感谢所有。
答案 0 :(得分:1)
有点晚了,但我认为这与JPG生成的'工件'(压缩错误)有关。放大JPG,您会看到与邻居不匹配的像素“粒子”。这意味着单一颜色的大平面将变为多种颜色而不是单一值。
坚持使用无损图像格式,如gif或png。