Применить фон к прозрачному изображению PNG после GD IMG_FILTER_COLORIZE

У меня есть прозрачное изображение PNG (оно монохромное), и я применяю GD-фильтр Colourise Php. Так что теперь его цвет, но у меня возникли проблемы с применением белого фона, чтобы избавиться от прозрачности.

    list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;

imagesavealpha($im, true);
imagefilter($im, IMG_FILTER_COLORIZE, $r, $g, $b);

$bw  = imagesx($im);
$bh = imagesy($im);
$background = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$bkwhite);
imagecopy($background, $im, 0, 0, 0, 0, $bw, $bh);

0

Решение

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

    list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;

$imfore = imagecreatefrompng(FILELOCATION);
imagesavealpha($imfore, true);
imagefilter($imfore, IMG_FILTER_COLORIZE, $r, $g, $b);
$bw  = imagesx($imfore);
$bh = imagesy($imfore);

$im = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($im, 255, 255, 255);
imagefill($im,0,0,$bkwhite);
imagecopy($im, $imfore, 0, 0, 0, 0,$bw,$bh);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]