我正在尝试压缩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);
这是原始图片:
这是JPEG:
这是PNG:
答案 0 :(得分:0)
JPEG是lossy compression格式,压缩过程中可能会丢失图像信息。牺牲原始图像信息是为了获得更好的压缩比(导致文件更小)。
但是,如果您无法接受,则应使用包含PNG的无损压缩方法之一。