Котти-кун
Условие: есть несколько файлов png-24 с прозрачностью (пусть будет 3 шт. одного размера 500х300px), есть GD2 и PHP5.

Задача: нужно совместить изображения в одно с сохранением прозрачности и TrueColor-палитры и вывести как jpeg-изображение.



Примерный вариант для двух изображений:

читать дальше



В принципе, этот скрипт совмещает изображения, но он преобразует оригинальные изображения в изображения с индексированной палитрой (с потерей прозрачности и TrueColor-палитры, естественно).

Конечное изображение может и не содержать прозрачных участков (раз уж в jpg выводится). Но должно быть построено по принципу слоёв.



- Использовать 8-bit изображения - не подходящий вариант.

- Создание статичных изображений в Фотошопе заранее - ещё хуже, т.к. в этом случае количество изображений, которые нужно нарисовать, возрастает по степени тройки.



Нужен совет по делу (или готовый скрипт =^_^= ). Советы "RTFM" и "Не тормози, Яндексни" не представляют практической ценности.



Спасибо, если не откажете =)



P.S. А может нужно использовать не GD2, а что-нибудь другое?

Комментарии
17.03.2006 в 21:58

Fire in a hole!
imagecreatetruecolor не пробовали?



$im = @imagecreatetruecolor (500, 300)
18.03.2006 в 10:41

Котти-кун
Вообще - нет. Но сейчас попробовал и всё равно тот же результат.

Вот на картинке:

- 1 изобр. - фоновое картинка (градиент)

- 2 изобр. - накладываемое изображение (с прозрачностью и размытием, но, т.к. сохранил в jpeg, прозрачность заменена на белый цвет

- 3 изобр. - как наложение выглядит в фотошопе

- 4 изобр. - как наложение выглядит в PHP (тут белый цвет обозначает белый цвет, а не прозрачность)

Размер изображения уменьшен (чтобы трафик сэкономить =))

Это демонстрашка, т.ч. не надо думать, что я такие картинки создаю =)