尝试调整存储在我的 SD 卡上的图像的大小时,我注意到原始颜色发生了变化。它接缝 BitmapFactory.decodeFile 对此负责。这是一个演示代码:
private void testImage() throws Exception{
BitmapFactory.Options o = new BitmapFactory.Options();
o.inDither = false;
o.inPreferredConfig = Bitmap.Config.ARGB_8888;
o.inScaled = false;
Bitmap b = BitmapFactory.decodeFile("/sdcard/test/original.jpg", o);
b.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream("/sdcard/test/result.jpg"));
b.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream("/sdcard/test/result.png"));
}
结果图像(original.jpg、result.jpg、result.png):
你有没有看到,男孩的皮肤在 2 个结果图像上有点绿。有什么解决这个问题的技巧吗?
最佳答案
你怎么知道你原来的颜色不是绿色的?
您的相机/PC 可能正确显示了图片,因为它们正确应用了相机的颜色配置文件。您的代码显然没有。
会不会是问题所在?尝试在相机/PC 以外的其他设备上查看图片。
关于Android 不尊重颜色!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451212/