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

mob*_*ner 6 compression android image-processing

我正在尝试压缩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);
Run Code Online (Sandbox Code Playgroud)

这是原始图片: 原版的
这是JPEG: JPG
这是PNG: PNG

Raj*_*esh 1

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

但是,如果这对您来说不可接受,您应该使用其中一种无损压缩方法,其中包括PNG