RFR: 8255679: RegionBackgroundImageUITest.unalignedImage_Cover fails because of wrong color
Jayathirth D V
jdv at openjdk.org
Wed Mar 13 09:00:28 UTC 2024
Updated test to get screen capture in different platforms to see how we are picking colors. Found that this test fails because it assumes that red,green & blue bands in the test image are of equal size and picks color based on that assumption.
If we take 20 * 20 aligned image, each scanline is 3 red pixels -> 3 green pixels -> 8 blue pixels -> 3 green pixels -> 3 red pixels. So the blue pixels actually acquire more space in a scanline. Even in y direction pattern is same.
If we 48 * 48 unaligned image, each scanline is 7 red pixels -> 8 green pixels -> 19 blue pixels -> 7 green pixels -> 7 red pixels. So the blue pixels actually acquire more space in a scanline. Even in y direction pattern is same.
So when this 48 * 48 image is scaled to 336 * 336 in case of unalignedImage_Cover, we are calculating picking point for green color in such a way that it is hitting border of green and blue bands and test is failing. Only in this specific scenario we are scaling by large amount and the inappropriate color picking logic is failing.
Updated color picking logic in such a way that appropriate weightage is given to each color and we pick that color properly even when we have large scaling. With this change test is passing on all platforms and there are no regressions seen in all test run.
-------------
Commit messages:
- Initial change
Changes: https://git.openjdk.org/jfx/pull/1400/files
Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1400&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8255679
Stats: 7 lines in 1 file changed: 1 ins; 1 del; 5 mod
Patch: https://git.openjdk.org/jfx/pull/1400.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1400/head:pull/1400
PR: https://git.openjdk.org/jfx/pull/1400
More information about the openjfx-dev
mailing list