gpt4 book ai didi

PHP - 将背景颜色更改为透明

转载 作者:可可西里 更新时间:2023-11-01 00:09:38 27 4
gpt4 key购买 nike

我需要将 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

最佳答案

我已经解决了这个问题:

<? 
$picture = imagecreatefrompng("../images/chart.png");

$img_w = imagesx($picture);
$img_h = imagesy($picture);

$newPicture = imagecreatetruecolor( $img_w, $img_h );
imagesavealpha( $newPicture, true );
$rgb = imagecolorallocatealpha( $newPicture, 0, 0, 0, 127 );
imagefill( $newPicture, 0, 0, $rgb );

$color = imagecolorat( $picture, $img_w-1, 1);

for( $x = 0; $x < $img_w; $x++ ) {
for( $y = 0; $y < $img_h; $y++ ) {
$c = imagecolorat( $picture, $x, $y );
if($color!=$c){
imagesetpixel( $newPicture, $x, $y, $c);
}
}
}

imagepng($newPicture, '../images/chart2.png');
imagedestroy($newPicture);
imagedestroy($picture);

我希望它能帮助到其他人。

关于PHP - 将背景颜色更改为透明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16660729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com