我导出了一张带有“RommRGB:ISO 22028-2:2013”颜色配置文件(在Mac/Affinity Photo中)的JPEG图像并将其放入res/drawable-nodpi。不幸的是,Android Oreo无法正确识别图像。Android奥利奥WideColorGamut/ProPhotoRGB不被识别
...
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;
BitmapFactory.decodeResource(getResources(), R.drawable.img_01_rommrgb, opts);
Log.i(TAG, "ColorSpace = " + opts.outColorSpace.getName()); // ===> ColorSpace = Unknown
opts.inJustDecodeBounds = false;
Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.img_01_rommrgb, opts);
ColorSpace colorSpace = b.getColorSpace(); // ===> Unknown
Bitmap.Config config = b.getConfig(); // ===> ARGB_8888
...
我也下载了一个ProPhoto.icc,并尝试过,但我仍然得到一个“未知”的ColorSpace。我也尝试将图像放入res/drawable-widecg-nodpi中,但仍然没有成功。
我认为,正确的行为应该是:
- 色彩空间应该被正确识别
- 位图应在RGBA_F16加载
也许我用亲和了错误的颜色配置文件照片。我没有进一步的想法。任何帮助表示赞赏。
PS:I reported the issue by google
EDIT1
我创建了一个GitHub的项目来演示该问题: Wide-gamut color test
我想,下面的测试案例是不正确的的Android奥利奥处理:
- 1-d)Romm RGB
- 1-E)ProPhoto RGB
- 2-d)罗姆RGB
- 2-e)中ProPhoto RGB
- 3-d)罗姆RGB
- 3-e)中ProPhoto RGB
- 4- d)罗姆RGB
- 4-e)中ProPhoto RGB