2011-10-25 45 views
5

Tôi tự hỏi liệu có cách nào để xác định chiều rộng và chiều cao của hình ảnh được giải mã thành ByteArray hay không. Ví dụ ở dưới đây, bất kỳ cách nào để xác định các giá trị này cho dữ liệu?Lấy kích thước hình ảnh từ ByteArray

dữ liệu var: ByteArray = new ByteArray();

data = encoded_image.decode (byteArrayData);

Trả lời

3

Bạn có thể làm điều đó như thế này:

var loader:Loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded) 
loader.loadBytes(byteArrayData); 

-

function onLoaded(e:Event):void 
{ 
    var loader:Loader = Loader(e.target.loader); 
    var bitmapData:BitmapData = Bitmap(e.target.content).bitmapData; 

    width = bitmapData.width; 
    height = bitmapData.height; 

    // cleanup 
    loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaded); 
} 

Nhược điểm là toàn bộ hình ảnh sẽ được giải mã, vì vậy nếu bạn không thực sự cần hình ảnh, nhưng chỉ có chiều rộng và chiều cao, bạn thực sự có thể muốn tìm trong mảng byte và giải mã định dạng tệp. (Xem thêm khôn lanh, nhưng

+0

tôi nhận được lỗi # 2044: Unhandled IOErrorEvent :. text = lỗi # 2124: tập tin Loaded là một loại vô danh – user1013448

+0

tôi nhận được một lỗi khi đi qua các ByteArray vào bộ nạp .. Lỗi # 2044: Không xử lý IOErrorEvent :. text = Lỗi # 2124: Tệp được tải là một loại không xác định. – user1013448

+0

có lẽ ByteArray bạn đang cung cấp không tốt. Đâu là mảng byte đến từ đâu? –

0

bạn có thể đọc nó từ tiêu đề. tiêu đề khác nhau đối với từng loại tập tin mặc dù. nhìn vào bộ giải mã hình ảnh tùy chỉnh, đây là một trong những điều họ làm.

đây là một trong cho pngs:

http://ionsden.com/content/pngdecoder

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