在从手机摄像头拍摄图像时,在Android中压缩图像会降低质量

时间:2016-02-08 14:17:57

标签: android image-compression

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

但压缩后我的图像质量下降。从手机拍摄并压缩图像会更糟。

请让我知道我做错了什么。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

使用lossless方法缩小文件的大小(例如PNG)将减少文件大小而不会降低质量 - 因此得名。减少取决于图像:具有许多相同像素的图片,例如该页面的屏幕截图,将大幅压缩。

使用lossy方法(例如普通的JPEG压缩)会产生更小的文件,但是你会为这种减少付出代价而质量下降。大多数保存JPEG的方法都允许您选择保真度,默认情况下通常为80%,这可以控制生成图像的质量;这是您发布的代码中的行:

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

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

以下是我撰写的关于选择图片格式的博文:How to choose an image formatThis one也可能值得一读。

在@ Gavriel的回答中,有关损耗与无损压缩的更多良好链接。