Есть картинка, в которой нужно при помощи PHP сделать прозрачной черную область и сохранить ее потом в png.
Пробую следующим образом:
$filename = 'pic.jpg';
$size = getimagesize($filename);
$sizeX = $size[0];
$sizeY = $size[1];
$im = imagecreatefromjpeg($filename);
for($x = 0; $x < $sizeX; $x ++)
{
for($y = 0; $y < $sizeY; $y ++)
{
$rgb = imagecolorat($im, $x, $y);
$colors = imagecolorsforindex($im, $rgb);
$r = $colors['red'];
$g = $colors['green'];
$b = $colors['blue'];
if($r == 0 && $g == 0 && $b == 0)
{
$rgb = imagecolorallocatealpha($im, 0, 0, 0, 127);
}
else
{
$rgb = imagecolorallocatealpha($im, $r, $g, $b, 0);
}
imagesetpixel($im, $x, $y, $rgb);
}
}
imagepng($im, 'result.png');
imagedestroy($im);
Действительно, черный (или другой, каким залью, цвет) становится прозрачным, но черная подложка все-равно остается.
Т.е. прозрачности все-равно добиться не удается.
Кто знает, помогите, пож.