2011-07-26 20 views
10

Duplicar posibles:?
Bitmap byte-size after decoding?tamaño del mapa de bits Android

¿Hay alguna forma para que pueda obtener el tamaño de este mapa de bits que he tratado de utilizar getByteCount() pero no puede usarlo?

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

¿Alguna sugerencia?

+4

@stema, @ ThiefMaster; Creo que cuando cierra una pregunta como duplicada, en el comentario de esa pregunta, debe proporcionar el enlace de la pregunta original de la que es un duplicado, de modo que otros que busquen respuestas como esta obtengan beneficios. de eso. –

Respuesta

3

Como se puede ver en la API, puede utilizar

getWidth() 
getHeight() 

para el tamaño del mapa de bits en píxeles.

Y si se trata de una matriz de bytes (8 bits = 1 byte), simplemente tome decryptedData.length - offset y sepa cuántos bytes hay en el mapa de bits.

O me estoy perdiendo algo aquí?

4

Si la imagen se almacena de forma local, puede hacer lo siguiente

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

¡Esto no es correcto! el tamaño del archivo no tiene nada que ver con el tamaño del mapa de bits. La mayoría de las imágenes están comprimidas, y el tamaño del mapa de bits real suele ser más grande. – donald

+0

¿Qué es managedQuery? –

Cuestiones relacionadas