Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Графика > Сделать gif с прозрачным фоном из других gifов


Автор: szz 8.3.2008, 15:45
У мне ятакая задача: есть несколько гифов, каждый размером около 20х20, в некоторых из них есть прозрачные области. Нужно создать на лету большой гиф, на котором находятся эти гифы.

Я все сделал - создал большой с помощью imagecreatetruecolor(100, 100), ращместил на нем маленькие гифы с помощью imagecopy и сохранил (imagegif()). Все получилось, но гиф получился непрозрачный (черный фон), и разумеется области прозрачности из исходных гифов залились черным.

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

Как такое решить задача вроде довольно тривиальная, php прозрачность поддерживает, но у меня не получается (((

Автор: szz 8.3.2008, 17:18
Решено - надо просто перед выводом в файл перевести ресурс из RGB в набор цветов:
imagetruecolortopalette($im, true, 255);
если передать второй параметр как false, то почему-то не все пиксели становятся прозрачными - появляются какие-то полосы и т.д. ,так что лучше ditherить.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)