Я работаю над созданием одного PNG-изображения из двух других.
Изображения A и B имеют одинаковые размеры, оба имеют размер 200x400 пикселей.Окончательное изображение то же самое.
Я использую библиотеку GD с PHP.
Итак, моя идея состояла в том, чтобы создать PNG-24 из моего исходного PNG-8, затем использовать прозрачность цвета и, наконец, скопировать второе изображение в этот новый PNG-24.В любом случае, проблема появляется на первом этапе, когда вы переходите от PNG-24 к PNG-8 с прозрачностью цвета:
Это для получения оригинального PNG-8 и его размеров:
$png8 = imagecreatefrompng($imageUrl);
$size = getimagesize($imageUrl);
Теперь я создаю новый PNG и заливаю фон зеленым цветом (не представлен на изображениях):
$png24 = imagecreatetruecolor($size[0], $size[1]);
$transparentIndex = imagecolorallocate($png24, 0x66, 0xff, 0x66);
imagefill($png24, 0, 0, $transparentIndex);
Это для того, чтобы сделать зеленый цвет прозрачным:
imagecolortransparent($png24, $transparentIndex);
Затем я копирую png8 в PNG-24:
imagecopy($png24, $png8, 0, 0, 0, 0, $size[0], $size[1]);
Так вот в чем проблема: оригинальный PNG-8 выглядит хорошо, но у него есть зеленая рамка, окружающая фигуру в исходном изображении.Это трудно объяснить на самом деле.Похоже, некоторая часть зеленого фона осталась в оставшемся PNG.
Что я могу сделать?
заранее спасибо
С наилучшими пожеланиями,
Fernando