среда, ноября 14, 2007

Как сохранить из Flash изображение в формате JPG

Есть необходимость сохранять изображение из Flash в формат JPG.
А точнее - сделать скриншот.

Поиски привели к статье: Export JPEG with Flash/PHP - bitmap сканируется в строку base64 и передается на сервер, где ее ловит PHP-скритп и транслирует в формат JPG.
Способ применим начиная с 8й версии FlashPlayer.

Другая статья: PNG Encoder in AS3 - здесь bitmap конвертируется в байтовый массив содержащий изображение в формате PNG.
Рядом - класс-конвертер Bitmap в JPG: More fun with image formats in AS3. Код прилагается.

Как сохранить ByteArray на сервер в файл: Save ByteArray to file with PHP

Еще статейка с сохранением PNG и JPG для Flash 8: Saving JPEGs or PNGs with Flash 8 Revisited. С исходниками.

* * *

Использовал последнюю статью (Saving JPEGs or PNGs with Flash 8 Revisited) - работает ОТЛИЧНО! Превосходный интерфейс, документировано, отличная демка.

7 комментариев:

Santana комментирует...

Обалденно! Чувак, ты моё спасение.

Racer комментирует...

Дык я то что? Это вон Квазимодам и другим флэш-гуру низкий поклон :)

zinchencko комментирует...

У меня ошибку выдает, не знаешь с чем связанно?
ERROR: [onImageHandle] HTTP Error null

Racer комментирует...

Трудно сказать - я пользовал движок не вдаваясь в подробности и не сталкивался с такой проблемой. Нужно прочесать исходники.

Racer комментирует...

Вспомнил, что была проблема с сохранением в режиме mode="palette". Он самый экономичный, но почему-то глючный.

А ошибка "[onImageHandle] HTTP Error" генерится в обработчике onImageHandle события загрузки LoadVars при status=false. Возможно это ошибка ответа сервера в процессе сохранения картинки.

Максим комментирует...

Отличная вещь! Спасибо!
На локале всё работает безупречно, но когда swf выложил на сайт, изображение перестало сохраняться (хотя окошко выбора пути и имени файла открывается).
Подскажите пожалуйста, как это можно исправить?
makctt@mail.ru
Спасибо

Racer комментирует...

Первое, что приходит на ум, это проверить атрибуты директории, в которую происходит сохранение изображений на сервере. Возможно, скрипту просто не удается сохранить файл изображения.
Попробуй покопать в этом направлении.