|
|
|||||
Banned
|
PNGEncoder проблема с альфой
Lib:
mx.graphics.codec.PNGEncoder Есть задача поместить значение цвета A+RGB с нулевой альфой (Например: 0,127,127,127). Но он, видимо для оптимизации веса, игнорирует такую запись и ставит все по нулям (0x0). Может у кого есть мысли как это обойти? P.S. Нашел PNGEncoder2 на HAXE с исходниками - работает так же. Но найти там это условие и поменять его, не тривиальная задача. К тому же Photoshop такие PNG с легкостью сохраняет. |
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Попробуйте BitmapData.encode()
Автоматически берёт альфу из битмапдаты. |
|
|||||
var bmd:BitmapData = new BitmapData(1, 1, true, 0x00808080); var p:uint = bmd.getPixel32(0, 0); trace( "p : " + p ); //0 т.е. обойти можно только какими-то внутренними 'договоренностями', типа ставить не ноль, а 0x01, ну и как-то учитывать при дальнейших манипуляциях к слову, а для чего именно такой png ( 0,127,127,127) может сгодится ? |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
водяной знак)))
__________________
Reality.getBounds(this); |
|
|||||
Banned
|
Цитата:
|
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Если лень разбираться с алгоритмом енкодера, можно просто сделать постобработку, пробежаться по нужному чанку и заменить все ноли на нужное число.
И плевать на битмапдату) Вопрос только в том, что будет после загрузки файла обратно. Из "правильного" пинга будет создана неправильная битмапдата?
__________________
Reality.getBounds(this); |
|
|||||
Banned
|
Цитата:
Найдено решение, пришлось обработать ByteArray с пикселями: P.S. Это конечно гадство, что BitmapData съедает данные |
Часовой пояс GMT +4, время: 14:37. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|