estoy copiando una imagen a un directorio privado de este modo:Copia de una imagen, pierde los datos Exif
FileChannel source = null;
FileChannel destination = null;
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
source.close();
destination.close();
..pero cuando inserto de nuevo en a la galería, sin tocar, en un momento posterior:
private void moveImageToGallery(Uri inUri) throws Exception {
MediaStore.Images.Media.insertImage(getContentResolver(), ImageUtil.loadFullBitmap(inUri.getPath()), null, null);
}
..aparentemente pierde sus datos Exif. La rotación ya no funciona. ¿Hay alguna forma de que pueda copiar un archivo de imagen y no perder esos datos? Gracias por cualquier sugerencia.
Purusing a través del grupo Google Android me lleva a creer que esto es un problema del sistema operativo, uno dev dijo: "Parece que una de estas solicitudes válidas". –
Es difícil que no hay una buena manera de hacerlo. Lo que puede hacer es copiar el archivo y, antes de insertarlo, usar ExifInterface para agregar los atributos que puede leer de la base de datos de imágenes, como rotación, latitud/longitud y fecha tomada. Luego, cuando inserte la imagen, debería leerla correctamente y agregarla a la nueva entrada de la base de datos. ¡Guau, me acabo de dar cuenta de que tiene 2 años! Estoy seguro de que ya has hecho algo como esto, pero dejaré mi respuesta aquí. No estoy seguro de por qué esto estaba en la parte superior de la lista de preguntas de Android. –