Convertir mapa de bits en byteArray android

Tengo un mapa de bits que quiero enviar al servidor por la codificación a base64, pero no quiero comprimir la imagen en png o jpeg.

Ahora lo que estaba haciendo anteriormente era.

ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream(); bitmapPicture.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY, byteArrayBitmapStream); byte[] b = byteArrayBitmapStream.toByteArray(); //then simple encoding to base64 and off to server encodedImage = Base64.encodeToString(b, Base64.NO_WRAP); 

Ahora solo no quiero usar ninguna compresión ni ningún formato de simple byte [] de bitmap que puedo codificar y enviar al servidor.

¿Algún puntero?

Puede utilizar copyPixelsToBuffer() para mover los datos de píxeles a un Buffer , o puede utilizar getPixels() y convertir los enteros en bytes con desplazamiento de bit.

copyPixelsToBuffer() es probablemente lo que querrás usar, así que aquí hay un ejemplo de cómo puedes usarlo:

 //b is the Bitmap //calculate how many bytes our image consists of. int bytes = b.getByteCount(); //or we can calculate bytes this way. Use a different value than 4 if you don't use 32bit images. //int bytes = b.getWidth()*b.getHeight()*4; ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer b.copyPixelsToBuffer(buffer); //Move the byte data to the buffer byte[] array = buffer.array(); //Get the underlying array containing the data. 

En lugar de la siguiente línea en la respuesta @jave:

 int bytes = b.getByteCount(); 

Utilice la línea y la función siguientes:

 int bytes = byteSizeOf(b); protected int byteSizeOf(Bitmap data) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) { return data.getRowBytes() * data.getHeight(); } else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { return data.getByteCount(); } else { return data.getAllocationByteCount(); } 
 BitmapCompat.getAllocationByteCount(bitmap); 

Es útil para encontrar el tamaño requerido de ByteBuffer

  • Cómo configurar Compress-Options para WebP en Android
  • Retraso en la demostración de uso de la imagen mapa de bits en android
  • ¿Podría alguien por favor explicar la matriz (Mr.Anderson)?
  • Android - Lienzo negro cuando se utiliza Flood-Fill
  • Cómo dibujar un círculo después de zoom en android
  • OOM cuando se utiliza NetworkImageView (de Volley biblioteca)
  • Sqlite Database - ¿Cómo guardar la imagen tomada de la intención de la cámara, así como hashmap a sqlite para recuperar más tarde?
  • Crear imagen desde la vista / pantalla en Android
  • Dibujo de mapas de bits reflejados en android
  • El blanco no es blanco
  • Android: desliza la imagen a través de "anulación" y "fitCenter" deforma Bitmap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.