@sergeysd

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

Есть картинка, в которой нужно при помощи PHP сделать прозрачной черную область и сохранить ее потом в png.
8dd7716e449d4aa8b2db3973a890f49d.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);

Действительно, черный (или другой, каким залью, цвет) становится прозрачным, но черная подложка все-равно остается.
Т.е. прозрачности все-равно добиться не удается.
Кто знает, помогите, пож.
  • Вопрос задан
  • 1264 просмотра
Решения вопроса 1
EnterSandman
@EnterSandman
Эникей
imagealphablending( $im, false );
imagesavealpha( $im, true );
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы