Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Графика > Тумбы с альфа-каналом |
Автор: set36 13.6.2006, 16:36 |
Сабж. Когда я в галерею помещаю PNG с альфа каналом, то вся прозрачность в тумбе закрашивается чёрным. хотя сохраняет как PNG. Может кто-то даст пример как бороться с этим ![]() Код "стандартный", могу кинуть, но он большой. |
Автор: skyboy 13.6.2006, 17:15 | ||||
http://forum.vingrad.ru/index.php?showtopic=74476&hl=%D0%BF%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C http://forum.vingrad.ru/index.php?showtopic=89901&hl=%D0%BF%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C Скрипт по созданию картинки(файл transparent_image.php):
Страница:
Как это выглядит - в аттаче. Видимо,главное - при генерации вызывать "imagesavealpha" ![]() |
Автор: skyboy 13.6.2006, 17:50 | ||
или ещё вот:
Т.е. для картинки надо установить режим работы с прозрачностью. Одно "но" - надо использовать или imagealphablending, или imagesavealpha, но не одновременно. |
Автор: set36 13.6.2006, 19:58 | ||
В принципе, там отдельная функция для PNG и там написано CreateFromPNG; сейчас попробую прилепить туда SaveAlpha. ________________________________________
Всёравно не понимаю, куда приткнуть... |
Автор: skyboy 13.6.2006, 23:06 | ||
а вот так:
для вариантов формата gif и png - не катит? |
Автор: set36 14.6.2006, 00:17 |
Я уже везде повписывал, всёравно сохраняет с чёрным фоном... |
Автор: skyboy 14.6.2006, 07:59 |
ну... тут могу только развести руками и сказать: "У меня же всё работает...." Может, с PHP чего не то? приведённый мною пример пробовал? сохраняет чёрный фон? |
Автор: set36 14.6.2006, 14:34 |
Я думаю, альфа-канал теряется до его сохранения. Значит эту штуковину надо засунуть по-выше. Спасибо за подсказку! Попробую, подумаю. |
Автор: skyboy 14.6.2006, 15:23 |
вставляй savealpha или imagealphablending сразу после создания ресурса. тогда сомнений не будет. |
Автор: 7910 14.6.2007, 18:53 |
Такая же фигня. Любой пример, где используется imagecreatetruecolor нормально не работает, теряется прозрачность. Но заработал такой прием без imagecreatetruecolor: $im = imagecreatefromgif('u/'.$entry); $src_trans = imagecolortransparent($im); $dst = imagecreate($new_width,$new_height); imagepalettecopy($dst,$im); imagefill($dst,0,0,$src_trans); imagecolortransparent($dst,$src_trans); imagecopyresampled($dst,$im,0,0,0,0,$new_width,$new_height,$width,$height); imagepng($dst, 'k/'.$i.'.png'); Может и Вам поможет |
Автор: skyboy 14.6.2007, 19:26 |
надо же! ровно год прошел! |
Автор: 7910 14.6.2007, 19:46 |
Sorry, я не заметила. Думала, это сегодня |