有没有办法从图像中删除exif缩略图?
我在我的应用程序中裁剪图像,并使用sanselan库无损复制所有exif数据。然后,我相应地更新宽度/高度/旋转。
我找不到任何更新exif缩略图或删除它的方法,有什么想法吗?
我有类似的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) {
}
}
所以我先删除了缩略图,然后对图像进行了操作。
你可以尝试先删除缩略图,然后再裁剪它。
ExifInterface
代码来自AOSP,例如Camera2应用程序中的此代码集,具有处理EXIF缩略图的方法。 - CommonsWare