我需要能够从磁盘加载 jpeg/png 图像并将其显示为 flex 并将其作为 base64 编码字符串发送到服务器。但是一旦加载了图像文件,在我的flash.display.LoaderInfo
对象中,bytes
属性(类型ByteArray
)包含比文件内容更多的字节。
示例:图像文件大小:3089 flash.display.LoaderInfo.bytesTotal:3089 flash.display.LoaderInfo.bytes.length:3155
由于我需要对flash.display.LoaderInfo.bytes
in base64 字符串进行编码,我不知道我必须将 ByteArray 对象的哪一部分发送到服务器。我不想将字节数组内容绘制成位图图像并将其重新编码为 jpg,因为我必须保持文件的原始质量。
谢谢
一些代码:
private function onDataLoadComplete(event:Event):void {
var encoder:Base64Encoder = new Base64Encoder();
//var imagePartBytes:ByteArray = new ByteArray();
//imagePartBytes.writeBytes(event.target.bytes, 0, event.target.bytesTotal);
//imagePartBytes.writeBytes(event.target.bytes, 0, event.target.bytes.length);
//imagePartBytes.writeBytes(event.target.bytes, event.target.bytes.length-event.target.bytesTotal, event.target.bytesTotal);
encoder.encodeBytes(event.target.bytes);
var imagePart:String = encoder.flush();
trace(imagePart);
data = fileName+";"+event.target.contentType+";"+imagePart;
_changed = true;
}