为什么在Bitmap.CompressFormat.JPEG压缩时图像的颜色发生了变化

时间:2012-06-06 05:40:59

标签: android image-processing compression

我正在尝试压缩Android中相机拍摄的照片。但是当Bitmap.CompressFormat.JPEG压缩时,图像的颜色发生了变化。我怎么解决这个问题?感谢

我已经放了一些从我的代码生成的示例图像。您可以看到图像顶部的纸张颜色不同。

以下是代码段:

Bitmap bitmap = BitmapFactory.decodeFile(Common.FOLDER_PATH + "pic.jpg");

FileOutputStream stream2 = new FileOutputStream(Common.FOLDER_PATH + "pic100.jpg");         
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream2); 

FileOutputStream stream3 = new FileOutputStream(Common.FOLDER_PATH + "pic100.png");         
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream3);

这是原始图片: original
这是JPEG: jpg
这是PNG: png

1 个答案:

答案 0 :(得分:0)

JPEGlossy compression格式,压缩过程中可能会丢失图像信息。牺牲原始图像信息是为了获得更好的压缩比(导致文件更小)。

但是,如果您无法接受,则应使用包含PNG的无损压缩方法之一。