En Android, al descodificar un mapa de bits desde una foto en el teléfono, los datos EXIF en el original se pierden. Estoy enviando este mapa de bits a mi servidor a través de un socket y me gustaría volver a adjuntar los datos EXIF faltantes a los datos que se envían.¿Cómo adjuntar metadatos EXIF a un Bitmap serializado en Android?
tengo algo de código que carga un objeto de mapa de bits de la MediaStore y lo comprime a una matriz de bytes en la preparación para enviarlo a través de una toma:
Bitmap bitmap = ...
ByteArrayOutputStream stream = new ByteArrayOutputStream(bitmap);
bitmap.compress(CompressFormat.JPEG, 70, stream);
byte[] input = stream.toByteArray();
Quiero usar el ExifInterface para llegar a la EXIF metadatos en el jpeg original en la tarjeta SD y de alguna manera agregar eso a la matriz de bytes salientes de una manera que yo sería capaz de extraer un jpeg con todos los EXIF correctos en el servidor (con suerte sin hacer esto en el servidor). Hasta ahora, he conseguido utilizar el ExifInterface para leer todos los datos EXIF:
String path = ... //bitmap file path
ExifInterface exif = new ExifInterface(path);
... = exif.getAttribute(...)
EDIT: En condiciones óptimas, me gustaría encontrar una solución que utiliza ninguna biblioteca. Si pudiera obtener los índices de la matriz de bytes del jpeg original que contiene el EXIF y anteponer/anexar estos bytes a la matriz de bytes producida por bitmap.compress(...)
, sería lo mejor.
Did a tener éxito con la adición de la información EXIF de matriz de bytes? – Vikas