2011-06-25 21 views
10

Tôi đang thực hiện một số cuộc gọi đến BitmapFactory.decodeFile()BitmapFactory.decodeResource() và tôi muốn chỉ định định dạng bitmap được giải mã thành, chẳng hạn như RGB_565 hoặc RGBA_8888.Tôi làm cách nào để chỉ định định dạng bitmap (ví dụ: RGBA_8888) với BitmapFactory.decode *()?

Hiện tại, định dạng bitmap được giải mã dường như phụ thuộc vào hình ảnh đến. Ngoài ra, có cách nào để chuyển đổi một bitmap hiện có sang một định dạng cụ thể không?

Lý do quan trọng là khi tôi cố gắng giải mã hình ảnh bằng cách sử dụng jnigraphics, một số hình ảnh trả lại một AndroidBitmapFormat loại ANDROID_BITMAP_FORMAT_NONE, mà tôi giả định là vô ích. Có ai có cái nhìn sâu sắc hơn về lý do tại sao các định dạng sẽ không có giá trị được biết đến? Khi điều này xảy ra, bộ chọn hình ảnh tích hợp sẽ hiển thị chính xác hình ảnh được giải mã theo cách này, vì vậy tôi cho rằng phải có cách để xử lý chúng.

Cảm ơn bạn đã nhập!

Trả lời

22

Đây có thể là những gì bạn đang tìm kiếm:

BitmapFactory.Options op = new BitmapFactory.Options(); 
op.inPreferredConfig = Bitmap.Config.ARGB_8888; 
bitmap = BitmapFactory.decodeFile(path, op); 
+1

RGBA8888 không phải là ARGB – neogineer

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