2011-07-06 27 views

Trả lời

2

Bạn có thể lưu hình ảnh như một Base64-string, nhưng tôi sẽ không khuyên bạn nên nó. Tôi đã thử làm điều này và nó làm chậm ứng dụng của bạn rất nhiều.

Nếu bạn vẫn muốn làm điều này, bạn nên tải về Base64 hạng tại liên kết này: http://garry-lachman.com/2010/04/21/base64-encoding-class-in-actionscript-3/

Nếu bạn sau đó nhận được BitmapData từ hình ảnh của bạn, bạn có thể gọi cho .getPixels() - Phương pháp, mà trả về một bytearray. Bytearray này có thể được chuyển đổi thành chuỗi Base64 bằng cách sử dụng lớp trong liên kết.

Nếu bạn muốn tải hình ảnh từ chuỗi Base64, bạn có thể tạo đối tượng Loader và sử dụng phương thức loadBytes() để tải trong byteArray mà bạn nhận được bằng cách giải mã chuỗi Base64 của bạn.

Hope this helps :)

7

Nếu bạn đang muốn mã hóa các ByteArray của một hình ảnh được nạp, bạn có thể sử dụng lớp Base64Encoder từ mx.utils Base64Encoder.

Cái gì như:

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); 
loader.load(new URLRequest("img.jpg")); 

function loadComplete(e:Event):void { 
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadComplete); 
    var bmd:BitmapData = Bitmap(e.target.content).bitmapData; 
    var ba:ByteArray = bmd.getPixels(new Rectangle(0,0,bmd.width,bmd.height)); 
    var b64:Base64Encoder = new Base64Encoder(); 
    b64.encodeBytes(ba); 
    trace(b64.toString()); 
} 

tôi phải theo dõi các lớp here.

Ngoài ra, còn có một lớp Base64 khác mà tôi đã tìm thấy nhưng chưa thử nghiệm here ... nhưng có vẻ như nó hoạt động tương tự.

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan