2016-06-26 12 views
8

Esiste comunque la possibilità di rimuovere una miniatura exif da un'immagine?Rimuovere o aggiornare la miniatura exif dall'immagine

Sto ritagliando le immagini nella mia app e copiando tutti i dati exif senza perdita di dati con la libreria sanselan. Successivamente, aggiorno la larghezza/altezza/rotazione di conseguenza.

Non ho trovato alcun modo per aggiornare la miniatura exif o per rimuoverla, qualche idea su come farlo?

+2

Il codice completo 'ExifInterface' da AOSP, come [questo set di codici nell'app Camera2] (https://android.googlesource.com/platform/packages/apps/Camera2/+/master /src/com/android/camera/exif/ExifInterface.java), ha metodi per lavorare con le miniature EXIF. – CommonsWare

+0

Lo controllerò. Al mio primo sguardo, la seguente libreria sembra utilizzare lo stesso codice: https: //github.com/sephiroth74/Android-Exif-Extended ... Non funzionerà con i flussi però ... – prom85

+0

PS: Penso di guardare nel codice Posso adattarlo alle classi sanselan ... – prom85

risposta

0

devo simile tipo di problema dei dati exif

private void removeThumbnails(ContentResolver contentResolver, long photoId) { 
     try { 
      Cursor thumbnails = contentResolver.query(
        MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, null, MediaStore.Images.Thumbnails.IMAGE_ID 
          + "=?", new String[]{String.valueOf(photoId)}, null); 
      if (thumbnails != null) { 
       for (thumbnails.moveToFirst(); !thumbnails.isAfterLast() && !thumbnails.isBeforeFirst(); thumbnails.moveToNext()) { 

        long thumbnailId = thumbnails.getLong(thumbnails.getColumnIndex(MediaStore.Images.Thumbnails._ID)); 
        String path = thumbnails.getString(thumbnails.getColumnIndex(MediaStore.Images.Thumbnails.DATA)); 
        File file = new File(path); 
        if (file.delete()) { 
         contentResolver.delete(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, MediaStore.Images.Thumbnails._ID + "=?", 
           new String[]{String.valueOf(thumbnailId)}); 
        } 
       } 
       thumbnails.close(); 
      } 
     } catch (Exception e) { 
     } 
    } 

Così mi hanno tolto la miniatura di esso prima poi fatto l'operazione sull'immagine

Così u può provare a rimuovere la miniatura e cercare di ritagliarlo dopo