| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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, я не заметила. Думала, это сегодня |