0
var is:ImageSnapshot = myImagesnapshot;
var str:String = ImageSnapshot.encodeImageAsBase64(is);

到目前为止,我正在使用上面的代码将我的 jpeg 数据发送到服务器。
问题是它几乎使数据大小增加了一倍。
有没有办法直接发送图像数据而不使用任何编码。

4

3 回答 3

1

base64 将大小增加了三分之一,所以如果你真的有大约 100% 的开销,那么你在其他地方就有问题了。

还没有很好地查看来源,但从参考资料看来,您可以直接检索二进制数据

只需将其放入URLRequest并按POST发送即可。

于 2010-03-15T09:41:09.830 回答
0

以下是不使用 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"]
于 2010-03-26T16:01:12.020 回答
-1

您可以将快照保存为 jpg 或 png。

看看: http ://blog.flexexamples.com/2007/12/07/using-the-imagesnapshot-class-to-capture-images-as-jpegs-or-pngs-in-flex-3/

于 2010-03-15T12:33:18.827 回答