2015-03-28 6 views
0

Мобильное приложение AIR должно отправить большое изображение на задний план для последующего отображения на веб-странице. Для выполнения PNGEncoder в приложении AIR требуется навсегда, поэтому идея состоит в том, чтобы преобразовать данные изображения в ByteArray, сжать его и отправить на сервер PHP, где он сохраняется как PNG с помощью кода PHP. Поэтому я ищу, чтобы выполнить PNG для PNGEncoder.as и класса BitmapData для PHP. Я нашел PNGEncoder.as в as3corelib, но не могу найти источник для класса BitmapData, который он использует. Так что вопросы
1. Есть ли код, который делает то, что я пытаюсь сделать?
2. Где я могу найти исходный код BitmapData?
3. Есть ли другой способ добиться этого, которого я пропустил?
AS3 BitmapData исходный код

Note1. Я понимаю, что я могу декомпилировать airglobal.swf, где находится BitmapData, но ищет более чистый способ.
Note2. Я знаю AMFPHP, но он не поддерживает тип BitmapData
Спасибо Энди

+0

Вы также протестировали JPEGEncoder вместо PNGEncoder? –

+0

Изображения должны быть в формате png с учетом требований заказчика – user2233677

ответ

0

Я вижу два решения этой проблемы.

Во-первых, вы можете использовать Worker, чтобы выполнить только процедуру преобразования и отправки, поскольку преобразование изображений является довольно автономной и простой задачей для разгрузки, и поскольку большинство современных устройств имеют более одного ядра, в любом случае, лучше оборудование для работы на клиенте, а не на сервере. Разумеется, вам нужно будет принять некоторые меры, чтобы предоставить экземпляр работника требуемым данным и правильно загрузить изображение (файлы cookie могут не обрабатываться хорошо у рабочего), но этот подход обычно более чист и не требует изменений на стороне сервера.

Второй подход заключается в использовании BitmapData.getPixels() для преобразования области пикселей в последовательность байтов, а затем отправить их без изменений на сервер для преобразования. Однако будьте осторожны, объем данных в исходном растровом изображении может быть слишком большим для принятия сервером, вы ищете не менее 4 байт на пиксель, так как растровые изображения в AS3 32-разрядные. Вы можете использовать кодировщик изображения на стороне сервера для преобразования необработанных данных на сервер после загрузки.

+0

Я рассматриваю возможность написания битового массива AS3 -> PNG или JPEG в PHP (хорошо переносит существующие PNGEncoder.as и JPEGEncoder.as) Любая обратная связь, если такой код может быть полезен? Я вижу сценарии, в которых мобильное приложение должно загружать большие изображения на задний конец для последующего отображения в среде, отличной от ASP3 (например, на веб-странице). Thanks Andy – user2233677

+0

К сожалению, нет данных по этому вопросу. Возможно, существуют существующие библиотеки PHP, которые делают это, ищите между генераторами изображений, они должны работать с необработанными растровыми данными, поэтому, возможно, по крайней мере, PNG-кодер уже разработан. – Vesper

+0

Существует библиотека изображений ImageMagick, которая обрабатывает множество форматов, но я не думаю, что она обрабатывает необработанные данные растрового AS3. Итак, вопрос в том, насколько он полезен для мобильных разработчиков AS3? Я знаю, по крайней мере, тот, который столкнулся с этой проблемой. Может быть, вы можете предложить форум, на котором я могу спросить. благодаря – user2233677

Смежные вопросы