PHP – изменить цвет фона на прозрачный

Мне нужно изменить цвет фона PNG изображения ( https://chart.googleapis.com/chart?cht=lxy&chd=e:AACIERGZIiKqMzO7RETMVVXdZmbud3f.iIkQmZohqqsyu7xDzM1U3d5l7u92,hhiIivfFmZZmcCY.YYZmTgdQjWd3kk6g880asfu7r4sf4E22tGtGsfzzmZj9&chds=0.0,1.0&chs=105×75&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: Как сделать зеленую область (фон) в изображении прозрачной? и imagecolortransparent на PHP не работает

Я решил эту проблему:

 <? $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 $im = 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"); $black = imagecolorallocate($im, 250, 250, 250); $bg_color = imagecolorat($im,1,1); imagecolortransparent($im, $bg_color); imagepng($im); imagedestroy($im); ?> 

Вы можете обратиться сюда -> imagecolortransparent