Flex отправляет снимок без использования base64Encode - PullRequest
0 голосов
/ 15 марта 2010
var is:ImageSnapshot = myImagesnapshot;
var str:String = ImageSnapshot.encodeImageAsBase64(is);

На данный момент я отправляю свои данные jpeg на сервер с кодом выше.
Проблема в том, что он почти удваивает размер данных.
Есть ли способ отправить данные изображения напрямую, без использования какой-либо кодировки.

Ответы [ 3 ]

1 голос
/ 15 марта 2010

base64 увеличивает размер на треть, поэтому, если у вас действительно 100% накладных расходов, у вас есть проблема в другом месте.

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

просто добавьте это в URLRequest и отправьте за POST .

0 голосов
/ 26 марта 2010

Вот пример отправки данных изображения без использования Base64:

 var myEncoder:JPGEncoder = new JPGEncoder(100);
 var byteArray:ByteArray = myEncoder.encode(bitmapData);
 var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
    var url:String = "../../default.php";
    var saveJPG:URLRequest = new URLRequest(url);
    saveJPG.requestHeaders.push(header);
    saveJPG.method = URLRequestMethod.POST;
    saveJPG.data = byteArray;

На стороне PHP мне нужен доступ:

 $globalS["HTTP_raw_post_data"]
0 голосов
/ 15 марта 2010

Вы можете сохранить снимок в формате jpg или png.

Взгляните на: http://blog.flexexamples.com/2007/12/07/using-the-imagesnapshot-class-to-capture-images-as-jpegs-or-pngs-in-flex-3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...