<AWT Dev> [13] Review Request: 8215105 java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java: Wrong Pixel Color

Phil Race philip.race at oracle.com
Wed Mar 27 16:06:50 UTC 2019


+1 (somehow this fix got lost).

-phil.


On 3/6/19 10:08 PM, Sergey Bylokhov wrote:
> Hello.
> Please review the fix for JDK 13.
>
> Bug: https://bugs.openjdk.java.net/browse/JDK-8215105
> Fix: http://cr.openjdk.java.net/~serb/8215105/webrev.00
>
> Notes about the current implementation.
>  1. The native system reads the pixels using the current "Display 
> Profile".
>  2. The robot API saves pixels into BufferedImage, which uses the sRGB 
> color profile.
>  3. To convert pixels from native representation to sRGB we used 
> "kCGColorSpaceGenericRGB" mode.
>
> Note that during conversion we may lost a color precision, this is why 
> we always configured our test systems to use "Generic RGB Profiles"
> But the logic above does not work on macOS 10.13.6.
>
>
> I have tested macOS 10.12/13/14 and the only constant which works on 
> all systems is a kCGColorSpaceSRGB + Display Profile "sRGB IEC 
> 61966-2.1".
> So we can:
>  - Change nothing and skip "support" of 10.13.6 where 
> "kCGColorSpaceGenericRGB" + "Generic RGB Profiles" does not work.
>  - Apply the current fix, but then we need to change the requirement 
> to the test systems(macos 10.12->10.14) to use "sRGB IEC 61966-2.1"
>
> But since "kCGColorSpaceGenericRGB is available only for legacy 
> reasons." it make sense to use kCGColorSpaceSRGB anyway.
> https://developer.apple.com/documentation/coregraphics/kcgcolorspacegenericrgb 
>
>



More information about the awt-dev mailing list