Я работаю над созданием одного изображения PNG из двух других.
Изображения A и B имеют одинаковые размеры, они оба 200x400px. Окончательное изображение такое же.
Я использую библиотеку 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.
Что я могу сделать?
заранее спасибо
наилучшие пожелания,
Фернандо