我導出了一張帶有「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