Android 不尊重颜色!

标签 android bitmap

尝试调整存储在我的 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):

alt text alt text alt text

你有没有看到,男孩的皮肤在 2 个结果图像上有点绿。有什么解决这个问题的技巧吗?

最佳答案

你怎么知道你原来的颜色不是绿色的?

您的相机/PC 可能正确显示了图片,因为它们正确应用了相机的颜色配置文件。您的代码显然没有。

会不会是问题所在?尝试在相机/PC 以外的其他设备上查看图片。

关于Android 不尊重颜色!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451212/

相关文章:

android - 快速搜索android的问题

android - 如何在 HTC EVO (Supersonic) 上禁用 AGC?

安卓 : authentication to php server application

android - BitmapFactory.decodeStream 总是返回 null 并且 skia 解码器显示解码返回 false

c - 如何在 C 中创建位图并使用 gcc 进行编译

android - 如何在特定区域填充图像中的颜色?

java - Android - 如果数据存在则获取 key (Firebase)

html - 1 图片 2 链接

android - 如何在不影响位图大小的情况下降低位图质量?

android - FirebasePushNotificationPlugin(xamarin) - 当应用程序在后台时不会触发事件(android)