¿Hay una manera simple de dar vuelta a la disposición del byte del onPreviewFrame de la cámara en una imagen en androide?
Pregunto si hay una manera simple porque hay un informe de la edición de google que dice que usar decodeByteArray no es posible. Pero ese informe se originó en 2008 y esperaba que hubiera una solución que no se publicara allí. El método enumerado en el informe de la edición era descodificar el formato usted mismo, pero preferiría no tener que poner eso adentro y retardar el programa. Cualquier ayuda en todo sería apreciada.
- Cómo recuperar la vista previa de la cámara de dormir?
- StartPreview falló pero no todos los dispositivos
- Vista previa de la vista previa de la UI en Android?
- Problemas con Gallery.getChildAt (int position)
- Tutorial de previsualización de la cámara Android
- Vista previa de la cámara Android Cambiar entre las cámaras
- ¿Cómo crear una vista previa de la cámara usando API 21 android?
- Vista previa de cámara negra en Android 7
- Android - Vista preliminar de la cámara
- GetSupportedPreviewSize devuelve el ancho y la altura inversos
- Vista previa de la cámara Android a la imagen final
- vista previa de la cámara
- Mostrar imagen de aplicación personalizada en el administrador de tareas de ICS o JB
La forma más fácil es crear una BufferedImage de la siguiente manera:
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0. data.length);
Datos es la matriz de bytes.
Supongo que su matriz de bytes es de la vista previa de la cámara? Si es así tienes que decodificarlo pero con 2.2 es bastante fácil ahora.
Cree una imagen YUV de la matriz de bytes ya que los datos sólo estarán en ImageFormat.NV21( int code 17)
img = new YuvImage(imgData, ImageFormat.NV21, width, height, null);
Cree un rectángulo del mismo tamaño que la imagen.
Cree un ByteArrayOutputStream
y pase esto, el rectángulo y el valor de compressToJpeg()
para compressToJpeg()
.
Entonces puedes usar
Bitmap mBitmap = BitmapFactory.decodeByteArray(outputStream.toByteArry(),0,outputStream.size());
Yo uso esto para cada marco en la devolución de llamada y funciona bien. Espero que esto ayude.