Альфа-прозрачность PNG в AS3 - неизвестный тип файла - PullRequest
0 голосов
/ 06 апреля 2010

После сокращения параметров мы столкнулись с проблемой с PNG и ActionScript 3 (AS3).

При загрузке PNG 8 или PNG 32 с альфа-прозрачностью мы получаем следующую ошибку во Flash: -

"Ошибка № 2124: загруженный файл неизвестного типа"

Теперь мы имеем дело с некоторыми устаревшими изображениями, и кажется, что эта проблема не универсальна - загружаются некоторые изображения, считающиеся 32-битными альфа-PNG. НО, некоторые выводы: -

  • преобразование одного изображения, которое было 32-битным альфа-каналом (НЕ РАБОТАЕТ В AS3) в PNG 8. Индексная прозрачность работала.
  • И преобразование того же изображения в PNG 8 alpha НЕ БЫЛО.
  • Все это работало в AS2
  • Нет разницы между заголовками

Заголовки ошибочного изображения

[0] => HTTP/1.1 200 OK
[1] => Date: Tue, 06 Apr 2010 14:17:28 GMT
[2] => Server: Apache/2.2.3 (Red Hat)
[3] => Last-Modified: Tue, 06 Apr 2010 13:44:05 GMT
[4] => ETag: "3700054-11d6-a3983340"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 4566
[7] => Connection: close
[8] => Content-Type: image/png

Заголовки рабочего изображения

[0] => HTTP/1.1 200 OK
[1] => Date: Tue, 06 Apr 2010 14:19:02 GMT
[2] => Server: Apache/2.2.3 (Red Hat)
[3] => Last-Modified: Fri, 30 Oct 2009 18:38:08 GMT
[4] => ETag: "ba8057-65f2-5445c400"
[5] => Accept-Ranges: bytes
[6] => Content-Length: 26098
[7] => Connection: close
[8] => Content-Type: image/png

Любые мысли о направлении дальнейших расследований или мысли о сбивающей с толку проблеме практически без документации; очень тепло приветствуется.

EDIT

Теперь может показаться, что в преобразовании изображений PHP что-то происходит; Я использую следующий PHP для добавления альфа-слоев: -

imagealphablending($image_p, false);
ImageSaveAlpha($image_p, true);
ImageFill($image_p, 0, 0, IMG_COLOR_TRANSPARENT); 

1 Ответ

2 голосов
/ 06 апреля 2010

HTTP-заголовки на самом деле мало что значат для флеш-плеера. Обычно он смотрит на заголовки файлов, поэтому вы должны посмотреть, верны ли они. Кроме того, что произойдет, если вы возьмете графическое программное обеспечение, откроете его и снова экспортируете с 32-битной прозрачностью. Проблема исчезла?

И последнее, но не менее важное: вы должны учитывать, что Flash Player поддерживает не все функции PNG. То, с чем люди обычно сталкиваются, является переплетением. это могло быть это?

...