Quiero averiguar el tamaño de una imagen que se llevó a cabo en una matriz de bytes en KBCómo obtener el tamaño de una imagen que se mantiene en una matriz de bytes en KB
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.mPicture);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); //bm is the bitmap object
byte[] b = baos.toByteArray();
Los siguientes registros de pantalla de dos resultados diferentes para una imagen que es 11.7kb:
Log.d(TAG, "bm size: " + bm.getByteCount()/1024); // 942
Log.d(TAG, "baos size: " + baos.size()/1024); // 81
Log.d(TAG, "byte size: " + b.length/1024); // 81
que es el resultado correcto o cómo puedo obtener el resultado correcto ?? Cualquier ayuda es apreciada.
cómo explicas que el tamaño sea diferente al tamaño real de la imagen. se supone que es 11.7KB pero devuelve algo diferente como puede ver ... –
11.7KB es el tamaño del archivo comprimido que ha abierto. Una vez que se carga como un mapa de bits, su tamaño no se comprime, por lo que su tamaño es proporcional al ancho * alto. Luego está comprimiendo a JPEG con un factor de compresión de 100, que da como resultado un tamaño de 81. Esto es diferente del original, probablemente porque el original se comprimió con una compresión de 60-80 en lugar de 100. – GuillermoMP