从 phone 相机拍摄图像时,在 android 中压缩图像质量下降

Compressing image in android is loosing the quality when image is taken from phone camera

我正在用这个方法压缩图片https://gist.github.com/ManzzBaria/c3af85b708fee49d55f7

但我的图像在压缩后质量下降。当图像取自 phone 并压缩时,情况更糟。

请告诉我哪里做错了。

您应该阅读有关有损和无损图像压缩的内容:

  • Lossless and lossy image compression algorithm?

  • PHP Compress Image with Lossy/Lossless

  • jpeg compression - lossy or lossless

减小图像 的大小会带走像素,从而有效地降低图像的分辨率。当然,文件也会变小。如果您保存为高保真 JPEG(比如 95%),这可能是您需要的所有文件大小缩减。

通过 lossless method (eg PNG) 减小 文件 的大小将实现文件大小的减小而不会降低质量——因此得名。缩小取决于图像:具有许多相同像素的图片,例如本页的屏幕截图,将大幅压缩。

使用 lossy 方法(例如普通的 JPEG 压缩)将生成更小的文件,但您将为此付出质量损失的代价。大多数保存 JPEG 的方法都允许您选择保真度,默认情况下通常为 80%,它控制生成图像的质量;这是您 post 编辑的代码中执行此操作的行:

scaledBitmap.compress(Bitmap.CompressFormat.JPEG, 80, out);

同样,您实现的缩小与图像的复杂性以及保真度参数成反比。

这是我写的关于选择图像格式的博客 post:How to choose an image format. This one 可能也值得一读。

@Gavriel 的回答中有更多关于有损压缩与无损压缩的链接。