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.

 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?

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.

  • Canvas.drawBitmap () ignorando el modo de mosaico de la pintura
  • Fuga de memoria en Android al intentar enviar un formulario con imagen al servidor PHP
  • Aplicación lenta con imagen de fondo
  • Guardar bitmap en la función de archivo
  • ImageView: recicla automáticamente el mapa de bits si ImageView no está visible (dentro de ScrollView)
  • ¿Dónde desasignar correctamente el mapa de bits en Android View?
  • Aplicación de una superposición (filtro de imagen) a un mapa de bits
  • Tome la imagen y convertir a Base64
  • Enmascarar (recortar) la imagen en el marco
  • Android: creación de un mapa de bits con contenido de SurfaceView
  • Widget de página de Viewpager más ancho de pantalla en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.