Создание картинки с неровными краями и прозрачным фоном

Понадобилось сделать картинку с неровными краями, причем картинка должна быть именно прозрачной, вариант сделать белый фон не прокатывает. Самым логичным было бы использовать наложение маски как это можно сделать скажем во флеше... но...

Почему то в GD нет функций для работы с масками.

Так выглядит код маскирования:
<?php
$image = imagecreatefromgif('image.gif');
$mask = imagecreatefromgif('mask.gif');

$dest = imagecreatetruecolor(imagesx($image),imagesy($image));

imagemask($dest,$image,$mask);

header('Content-type: image/jpeg');
imagepng($dest);
?>

Код самой функции маскирования:
<?php
function imagemask($dest,$image,$mask){
    $width =  imagesx($image);
    $height = imagesy($image);
    
    $tc = imagecolorallocate($dest,0,0,0);
    imagecolortransparent($dest,$tc);
    
    for($i=0;$i&lt;$width;$i++){
        for($j=0;$j&lt;$height;$j++){
            $c = imagecolorat($image,$i,$j);
            $color = imagecolorsforindex($image,$c);
            
            $c = imagecolorat($mask,$i,$j);
            $mcolor = imagecolorsforindex($mask,$c);
            
            if (!($mcolor['red']==255 &amp;&amp; $mcolor['green']==255 &amp;&amp; $mcolor['blue']==255)){
                $c = imagecolorallocate($dest,$color['red'],$color['green'],$color['blue']);
                imagesetpixel($dest,$i,$j,$c);
            } 
        }
    }
}
?>
Теги:
Создание картинки
Добавлено: 29 Мая 2018 21:42:41 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...