从图像中删除或更新exif缩略图

8

有没有办法从图像中删除exif缩略图?

我在我的应用程序中裁剪图像,并使用sanselan库无损复制所有exif数据。然后,我相应地更新宽度/高度/旋转。

我找不到任何更新exif缩略图或删除它的方法,有什么想法吗?


2
完整的ExifInterface代码来自AOSP,例如Camera2应用程序中的此代码集,具有处理EXIF缩略图的方法。 - CommonsWare
我会去查看一下。在我第一次浏览时,以下库似乎使用了相同的代码:https://github.com/sephiroth74/Android-Exif-Extended... 不过无法处理流… - prom85
PS:我认为通过查看代码,我可以将其调整为sanselan类... - prom85
1个回答

0

我有类似的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) {
        }
    }

所以我先删除了缩略图,然后对图像进行了操作。

你可以尝试先删除缩略图,然后再裁剪它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接