Как скопировать исходный файл GIF в прозрачный файл назначения PNG без потери цвета фона?

Я следую примеру из документации PHP «Добавление водяных знаков к изображениям с использованием альфа-каналов», за исключением того, что мое конечное изображение — это прозрачный файл PNG, а мое изображение штампа — изображение GIF. Проблема, с которой я столкнулся, заключается в том, что мое изображение в формате GIF теряет цвет фона, черный и становится прозрачным в моем конечном изображении. Мое окончательное расширение изображения должно быть таким же, как исходный файл, GIF.

<?php
$source = 'path_to_file/source.gif';//190x34 size image with black background
$trans_img_dir = 'path_to_file/blank.png';
$final_image = 'path_to_file/final.gif';
$BLANK_IMG = 200;

//create transparent image
$imcreate = imagecreatetruecolor($BLANK_IMG, $BLANK_IMG);
imagecolortransparent($imcreate, imagecolorallocatealpha($imcreate, 0, 0, 0, 127));
//imagealphablending($imcreate, false);
//imagesavealpha($imcreate, true);
imagepng($imcreate, $trans_img_dir);
imagedestroy($imcreate);

$blank_mark = imagecreatefrompng($trans_img_dir);

$im = imagecreatefromgif($source);

$sx = imagesx($im);
$sy = imagesy($im);

imagecopy(
$blank_mark,
$im,
$BLANK_IMG/2 - $sx/2,
$BLANK_IMG/2 - $sy/2,
0,
0,
$sx,
$sy
);

imagegif($blank_mark, $final_image);
imagedestroy($blank_mark);
imagedestroy($im);

?>

источник

место назначения

0

Решение

Задача ещё не решена.

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

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

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