【问题标题】:Windows photo viewer does not open bitmap compressed images from Android studioWindows 照片查看器无法从 Android Studio 打开位图压缩图像
【发布时间】:2020-05-20 05:32:41
【问题描述】:
我正在使用 android 自定义相机捕获 JPG 图像,但无法在 Windows 照片查看器上预览它们。任何人都可以请建议。使用 Ms Paint、Office、Windows 10 Photo 应用程序等其他应用程序可以看到图像。
【问题讨论】:
标签:
android
android-studio
android-image
android-image-capture
【解决方案1】:
这显然是由 Android 将添加到位图中的 ICC 颜色配置文件引起的。 Windows 照片查看器无法显示具有该 ICC 颜色配置文件的图像。
我还没有发现这个 ICC 配置文件是如何生成的,我认为这是由 Android Bitmap.compress 函数完成的。
删除配置文件,例如ImageMagick 将“修复”文件,它们也将在照片查看器中打开。
【解决方案2】:
从 Android 10 开始,Bitmap.compress() 似乎添加了 ICC 配置文件。
此问题是由于添加的 ICC 配置文件中的版本值不正确造成的。
此问题已在 skia 问题跟踪器上报告并修复。
不知道什么时候会在Android上修复。
https://bugs.chromium.org/p/skia/issues/detail?id=12491
因此,从使用 Bitmap.compress() 生成的 jpeg 图像中删除 ICC 配置文件似乎是目前最好的方法。
要以编程方式解决它,您需要解析使用 Bitmap.compress() 生成的 JPEG 数据以删除 ICC 配置文件段。
【解决方案3】:
此问题的其他答案已经解释了可能由与 Android 采用的图像压缩技术相关的一些错误引起的问题,导致图像无法在 Windows 照片查看器中打开。
我已多次向 Google 和 Android 社区报告此问题,但即使经过多次 Android 升级,此问题仍然存在。
我知道这个问题很烦人,在没有直接解决方案之后,我希望与可靠的开源软件分享一个简单可靠的解决方案。
-
对于单个图像,使用 GIMP 打开图像然后导出 (CTRL+SHIFT+E) 替换现有文件时的原样图像。
-
对于多个图像,请使用 CAESIUM 图像压缩器并将质量设置为 100%。