2011-07-26 17 views
10

Powiel możliwe:
Bitmap byte-size after decoding?Uzyskaj rozmiar bitmapy Androida

Czy mimo to mogę otrzymać rozmiar tego Bitmap Próbowałem użyć getByteCount(), ale nie możesz tego użyć?

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

Wszelkie sugestie?

+4

@stema @ ThiefMaster; Myślę, że kiedy zamykasz pytanie jako duplikat, w komentarzu do tego pytania powinieneś podać link oryginalnego pytania, którego jest duplikatem, aby ci, którzy szukają odpowiedzi na takie pytania, otrzymają korzyści z tego. –

Odpowiedz

3

Jak widać z API, można użyć

getWidth() 
getHeight() 

dla rozmiaru bitmapy w pikselach.

A jeśli jest to tablica bajtów (8bit = 1byte), to po prostu weź decryptedData.length - offset i wiesz, ile bajtów znajduje się w bitmapie.

Czy coś tu brakuje?

4

Jeśli obraz jest przechowywany lokalnie można wykonać następujące

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

To nie jest poprawne! rozmiar pliku nie ma nic wspólnego z rozmiarem mapy bitowej. Większość zdjęć jest skompresowana, a rzeczywisty rozmiar bitmapy jest zwykle większy. – donald

+0

czym jest managedQuery? –

Powiązane problemy