Necesito escalar una imagen antes de crearla y quiero hacerlo solo si excede 1024 KB (por ejemplo).¿Cómo saber un tamaño de mapa de bits de InputStream antes de crear el mapa de bits?
Al hacer lo siguiente, puedo escalar la imagen, pero solo necesito escalar las que son más grandes que el tamaño dado.
Bitmap bmImg = null;
InputStream is = url.openStream();
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 10;
bmImg = BitmapFactory.decodeStream(is,null,opts);
¿Cómo puedo obtener el tamaño del mapa de bits? (Estoy feliz de saber la cantidad de bytes, no el tamaño después de descomprimir).
Editar:
Estoy tratando esto:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
Bitmap bmImg=BitmapFactory.decodeStream(is,null,opts);
Log.e("optwidth",opts.outWidth+"");
Bitmap bmImg1 = BitmapFactory.decodeStream(is);
La primera vez que utilizo el InputStream (es) para decodificar con los "inJustDecodeBounds" funciona bien y puedo conseguir la Dimensiones de mapa de bits El problema es que la segunda vez que lo uso para decodificar realmente la imagen, no se muestra ninguna imagen.
¿Qué estoy haciendo mal?
Esto realmente funciona, pero es mucho más lento. – sergi