android - MediaStore.Images.Media 降低存储到图库的图像质量

标签 android jpeg mediastore

我正在通过 - 将应用程序的屏幕截图保存到图库

//screenshot
private void screenshot()
{
    Uri photo = lomography();
    String photopath = photo.getPath();
    try {
        MediaStore.Images.Media.insertImage(getContentResolver(), photopath, "name" , "desc");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

存储在 photopath 的图像是高质量的:

enter image description here

但是当我导航到图库并打开同一张照片时,这是具有多个压缩伪影的低 JPEG 版本:

enter image description here

当原始文件为 PNG 时,为什么图库图像为 JPEG 版本? 如何将高分辨率版本保存到图库?

read here诀窍在于“使用 ContentResolver::insert 注册图像”。

但我正在使用 getContentResolver。

最佳答案

要解决此问题,请打开“MediaStore.Images.Media.insertImage”方法的声明,将您需要的代码复制并粘贴到您自己的类中,然后将其以 50% 压缩图像的位置更改为 100% .

关于android - MediaStore.Images.Media 降低存储到图库的图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17801605/

相关文章:

c# - 尝试使用 C# 写入关键字窗口元数据项

java - 如何在 java 中获取 jpeg/tiff 的色彩空间?

image - 使用 Paradox 在 Delphi 7 中实时将 BMP 转换为 JPG

Android 9 (Pie) ContentResolver 查询 MediaStore.Images.Media.EXTERNAL_CONTENT_URI 在 api 28 上返回 null

image - 如何将图像保存在 android Q 的子目录中,同时保持向后兼容

android - 如何在 Cocos2d 中裁剪图像

java - Android - 条码扫描,选项?志兴?

java - 如何在android recyclerview中获取点击项目的文本

android - 玩游戏服务 : The application is incorrectly configured error?

android - 将文件写入 Android Q 中可公开访问的文档文件夹 - Scoped Storage