работя върху създаването на едно 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.
Какво мога да направя?
Благодаря предварително
С Най-Добри Пожелания,
Фернандо