2011-07-26 44 views
10

Có thể trùng lặp:
Bitmap byte-size after decoding?Nhận kích thước của Bitmap Android

Liệu có cách nào để tôi có thể có được kích thước của Bitmap này tôi đã cố gắng sử dụng getByteCount() nhưng tôi không thể sử dụng nó?

Bitmap bitmap = BitmapFactory.decodeByteArray(decryptedData , 0, decryptedData .length); //decoding bytearrayoutputstream to bitmap 

Mọi đề xuất?

+4

@stema, @ ThiefMaster; Tôi nghĩ, khi bạn đóng một câu hỏi là trùng lặp, sau đó nhận xét về câu hỏi đó, bạn nên cung cấp liên kết của câu hỏi gốc mà nó là bản sao, để những người khác đang tìm kiếm câu trả lời cho các câu hỏi như thế này, sẽ nhận được lợi ích từ nó. –

Trả lời

3

Như bạn có thể nhìn thấy từ API, bạn có thể sử dụng

getWidth() 
getHeight() 

cho kích thước của Bitmap bằng pixel.

Và nếu đó là một mảng byte (8bit = 1byte) thì chỉ cần decryptedData.length - offset và bạn biết có bao nhiêu byte trong Bitmap.

Hoặc tôi có thiếu gì đó ở đây không?

4

Nếu hình ảnh được lưu trữ cục bộ, bạn có thể làm như sau

public long getImageLength(String absFileName) 
{   
    File file = new File(absFileName); 
    return file.length(); 
} 

/** 
* From "http://stackoverflow.com/questions/2169649/open-an-image-in-androids-built-in-gallery-app-programmatically" 
* uri - data stored in an Intent returned from an application such as Gallery or Camera 
*/ 
private String getAbsPath(Uri uri) 
{ 
    String[] projection = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(uri, projection, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 
+2

Điều này không chính xác! kích thước tệp không có gì để làm với kích thước bitmap. Hầu hết các bức ảnh được nén và kích thước bitmap thực tế thường lớn hơn. – donald

+0

managedQuery là gì? –

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