【发布时间】:2020-12-18 01:40:15
【问题描述】:
我需要将 PNG 图片 (https://chart.googleapis.com/chart?cht=lxy&chd=e:AACIERGZIiKqMzO7RETMVVXdZmbud3f.iIkQmZohqqsyu7xDzM1U3d5l7u92,hhiIivfFmZZmcCY.YYZmTgdQjWd3kk6g880asfu7r4sf4E22tGtGsfzzmZj9&chds=0.0,1.0&chs=105x75&chma=1,0,1,1&chco=42b6c9ff&chls=2.5,1.0,0.0&chxl=0:%7C%7C1:%7C%7C2:%7C) 的背景颜色更改为透明。我使用以下在我看来是正确的代码:
$picture = imagecreatefrompng("https://chart.googleapis.com/chart?cht=lxy&chd=e:AACIERGZIiKqMzO7RETMVVXdZmbud3f.iIkQmZohqqsyu7xDzM1U3d5l7u92,hhiIivfFmZZmcCY.YYZmTgdQjWd3kk6g880asfu7r4sf4E22tGtGsfzzmZj9&chds=0.0,1.0&chs=105x75&chma=1,0,1,1&chco=42b6c9ff&chls=2.5,1.0,0.0&chxl=0:%7C%7C1:%7C%7C2:%7C");
$img_w = imagesx($picture);
$img_h = imagesy($picture);
imagealphablending($picture, false);
imagesavealpha($picture, true);
$rgb = imagecolorexact ($picture, 255,255,255);//imagecolorat($picture, 50, 50);
imagecolortransparent($picture, $rgb);
imagepng($picture, '../images/chart2.png');
imagedestroy($picture);
我也使用imagecolorat 来检测准确的颜色,但结果是一样的——它不起作用(背景是白色的(不透明))!我的错误是什么?
可能的重复:PHP: How to make a green area (background) in an image transparent? 和 imagecolortransparent in PHP not working
【问题讨论】: