Quantcast
Channel: Linux.org.ru: Форум
Viewing all articles
Browse latest Browse all 108417

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

$
0
0

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

 ,


Viewing all articles
Browse latest Browse all 108417

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>