Rotación de la matriz de bytes de JPEG después de onPictureTaken

¿Hay una manera de girar la matriz de bytes sin decodificar a Bitmap?

Actualmente en jpeg PictureCallback sólo escribo matriz de bytes directamente al archivo. Pero las imágenes se giran. Me gustaría girarlos sin decodificar a mapa de bits con la esperanza de que esto conservará mi memoria.

BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeByteArray(data, 0, data.length, o); int orientation; if (o.outHeight < o.outWidth) { orientation = 90; } else { orientation = 0; } File photo = new File(tmp, "demo.jpeg"); FileOutputStream fos; BufferedOutputStream bos = null; try { fos = new FileOutputStream(photo); bos = new BufferedOutputStream(fos); bos.write(data); bos.flush(); } catch (IOException e) { Log.e(TAG, "Failed to save photo", e); } finally { IOUtils.closeQuietly(bos); } 

No creo que haya tal posibilidad. El orden de los bytes depende de la codificación de la imagen (png, jpeg). Así que se ven obligados a decodificar la imagen para hacer algo con ella.

Puede establecer la rotación JPEG a través del encabezado Exif sin decodificarlo. Este es el método más eficiente, pero algunos espectadores pueden mostrar una imagen girada.

Como alternativa, puede utilizar la rotación JPEG sin pérdida . Desafortunadamente, no soy consciente de las implementaciones Java gratuitas de este algoritmo.

Actualización en SourceForge, hay una clase Java open source LLJTran . El puerto de Android está en GitHub .

Prueba esto. Resolverá el propósito.

 Bitmap storedBitmap = BitmapFactory.decodeByteArray(data, 0, data.length, null); Matrix mat = new Matrix(); mat.postRotate("angle"); // angle is the desired angle you wish to rotate storedBitmap = Bitmap.createBitmap(storedBitmap, 0, 0, storedBitmap.getWidth(), storedBitmap.getHeight(), mat, true); 
  • Android webview página recarga después de la captura de imagen y cargar en android 5 +
  • Android-camera-server-died-y-camera-error-100
  • SetParameters () falla a pesar de configurar el tamaño de vista previa
  • Cámara en el emulador de Android
  • Cómo capturar una foto de la cámara sin intención
  • Compruebe si el dispositivo tiene una cámara?
  • ¿Está com.android.camera.action.CROP no disponible para Android jelly bean 4.3?
  • Uso de la cámara en el emulador de Android
  • LibGDX - Camera.update () llamada no hace nada
  • Android: cómo capturar la imagen sin mostrar la vista previa
  • ¿Cuál es la diferencia entre `opencv.android.JavaCameraView` y` opencv.android.NativeCameraView`
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.