Сохранение изображения из приложения Flash во время выполнения? - PullRequest
0 голосов
/ 06 января 2012

Мне трудно найти какой-либо код ActionScript, который поможет сохранить изображение во время выполнения.

Это приложение Flash, в котором пользователь может что-то спроектировать, а затем отправить его (мне)для публикации (я подумал, что лучший способ сделать это - сделать снимок JPEG с готовым дизайном, используя какой-то код ActionScript, а затем сохранить его на моем веб-сервере).Я искал вокруг и нашел несколько примеров, но ни один из них, похоже, не работает.

Любой свет на это будет принята с благодарностью!

Аарон

1 Ответ

0 голосов
/ 07 января 2012

Это был самый простой пример, который я нашел, когда работал над аналогичным проектом:

Необходимо установить as3corelib

https://github.com/mikechambers/as3corelib

проблема с сохранением больших jpgs заключалась в синхронном характере кодера, который замораживал бы все приложение во время его работы, и, следовательно, он был заменен асинхронной библиотекой, упомянутой в предыдущем комментарии

import com.adobe.images.JPGEncoder;

var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height);
jpgSource.draw(sketch_mc);

var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);

var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("jpg_encoder_download.php?name=sketch.jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank");

PHP STUFF - это записывает его на экран, но с тем же успехом может сохранить файл.

if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
    // get bytearray
    $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];

    // add headers for download dialog-box
    header('Content-Type: image/jpeg');
    header("Content-Disposition: attachment; filename=".$_GET['name']);
    echo $jpg;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...