Decodificar la matriz de bytes en el mapa de bits que se ha comprimido en Java
Estoy comprimiendo un mapa de bits de la siguiente manera
Bitmap bmpSig = getMyBitMap(); int size = bmpSig.getWidth() * bmpSig.getHeight(); ByteArrayOutputStream out = new ByteArrayOutputStream(size); bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out); byte[] bytSig = out.toByteArray();
A continuación, intento mostrar la imagen en un Android ImageView de la matriz de bytes. Cuando hago esto obtengo una imagen completamente negra.
- Android fast Carga de mapa de bits
- Dibujo fuera de pantalla WebView a mapa de bits
- mapa de bits de Android a matriz de bytes sin compresión
- Android: actualiza el mapa de bits del hilo del temporizador
- Android Bitmap.createScaledBitmap arroja java.lang.OutOfMemoryError sobre todo en Jelly Bean 4.1
ImageView myImg = (ImageView) findViewById(R.id.img_view); myImg.setImageBitmap(BitmapFactory.decodeByteArray(bytSig, 0, bytSig.length));
Estoy asumiendo que es porque me falta un paso antes de BitmapFactory.decodeByteArray () para invertir la compresión jpeg. ¿O he entendido mal cómo funciona la compresión?
- Android deallocate Bitmaps en la memoria "desconocida"
- Herramienta para convertir en lotes bitmaps de recursos de Android a diferentes densidades
- Tamaño de pantalla de Android Scaling Canvas
- Last.fm no devolverá la imagen del artista
- Escritura Bitmap al almacenamiento externo (sdcard)
- Tratando de dibujar en un mapa de bits cargado por el usuario
- OnPreviewFrame data image to imageView
- Android, Guardar y cargar un mapa de bits en caché de diferentes actividades
No me di cuenta de que el fondo de mi mapa de bits (de un objeto de lienzo) era transparente. Dado que este mapa de bits es sólo líneas negras sobre un fondo blanco, la imagen negra se debe a la compresión a JPEG, dando a la imagen un fondo negro.
he cambiado
bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out);
a
bmpSig.compress(Bitmap.CompressFormat.PNG, 100, out);
Y está funcionando como se esperaba.
- Seguridad de activos en Android
- Dibujo de la interfaz de usuario de Android en la parte superior de GLSurfaceView