7

我正在尝试压缩 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: jpg
这是 PNG: PNG

4

1 回答 1

1

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

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

于 2012-06-06T07:10:26.213 回答