LINUX.ORG.RU

Как черную область в изображении сделать прозрачной (PHP GD)?

 ,


0

1

Есть картинка, в которой нужно при помощи PHP сделать прозрачной черную область и сохранить ее потом в png.
http://hostingkartinok.com/show-image.php?id=abbc60ce04c4812aa25b43566286226f
Пробую следующим образом:

$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);
Действительно, черный (или другой, каким залью, цвет) становится прозрачным, но черная подложка все-равно остается.
Т.е. прозрачности все-равно добиться не удается. Кто знает, помогите, пож.



Последнее исправление: mikegubin (всего исправлений: 4)

Все уже написано до нас. Imagemagick спасет твое время.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.