You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Q及以上版本存储图片字节数远超旧版本原因问询

问题原因

核心根源是新旧两套存储流程的实际JPEG压缩质量不一致:

  • 旧流程使用的MediaStore.Images.Media.insertImage接口存在隐式压缩逻辑:你旧代码中写的inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes)属于完全冗余的无效代码,压缩后的字节流没有被任何逻辑使用,最终传入insertImage的是原始Bitmap对象。该废弃接口内部默认会对传入的Bitmap执行JPEG压缩,默认压缩质量通常为85左右,所以最终存储到本地的图片实际是85质量的JPEG,体积和你观测的380k一致。
  • 新适配的Android Q+存储流程没有系统隐式压缩:你直接通过inImage.compress(Bitmap.CompressFormat.JPEG, 100, imageOutStream)写入文件,此时生成的是实打实的100质量JPEG,体积自然是85质量版本的3~4倍,和你观测的1.4M结果完全吻合。

你测试时将新流程的JPEG压缩质量降到80%~90%后体积就和旧流程一致,也直接印证了上述结论。

内容的提问来源于stack exchange,提问作者user3398945

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:36:03