PHP GD - прозрачные области становятся черными - PullRequest
6 голосов
/ 06 мая 2011

Я пытаюсь сделать очень простой движок ISO в PHP, мои попытки рендеринга в правильном месте, порядке и т. Д. Увенчались успехом, однако нарисованные изображения по какой-то причине чёрные, где они должны быть прозрачными.Файлы PNG имеют канал прозрачности, и я использую следующий тестовый код: http://pastebin.com/TXk4LkJ8 Код - это просто черновик.

Файлы - это всего лишь 3 грани блока с размерами, указанными ниже: верх - 44x22;сторон: 23x34

Спасибо за вашу помощь, и я надеюсь, что вопрос достаточно ясен.

Редактировать: Вот проблема: http://dl.dropbox.com/u/10530011/obrazki/isofail.png

Редактировать: [ Решено ] По какой-то причине мне пришлось сохранить изображения в формате GIF, чтобы все заработало.Спасибо за вашу помощь.

Ответы [ 2 ]

12 голосов
/ 06 мая 2011

Вы должны вызвать эти две функции перед сохранением изображения в формате png, imagealphablending () и imagesavealpha () :

imagealphablending( $image, false );
imagesavealpha( $image, true );
3 голосов
/ 06 мая 2011

Этот ответ предлагает две вещи:

  • imagealphablending должен быть установлен в false для сохранения альфа-каналов
  • Вы должны установить прозрачный требуемый цвет (в данном случае черный):
$black = imagecolorallocate($image, 0, 0, 0);
imagecolortransparent($image, $black);

Помогают ли это?

...