Integrated: 8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1)
Alexey Ivanov
aivanov at openjdk.org
Wed Aug 23 11:53:39 UTC 2023
On Thu, 17 Aug 2023 20:43:59 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:
> **Problem**
>
> Glyphs aren't stretched by applying an affine transform `scale(2, 1)` to a font. Instead, the space between glyphs increases.
>
> **Root Cause**
>
> Bitmaps embedded in the font are used to render the glyphs; the bitmaps aren't transformed, so white-space is seen which fills the requested horizontal size.
>
> **Fix**
>
> Disable using embedded bitmaps if horizontal transform is different from the vertical one.
>
> It's similar to [JDK-8204929](https://bugs.openjdk.org/browse/JDK-8204929) and [JDK-8255387](https://bugs.openjdk.org/browse/JDK-8255387).
>
> **Test**
>
> When embedded bitmaps are used, the right half of the image remains filled with the background colour. The test looks for non-white pixels in the right half of the image. If there are only white pixels in the right half of the image, the test fails; if there are other colours, the test passes.
>
> I can reproduce the problem on Windows only. Without the fix, the test reports 6 failures for "MS Gothic", "MS PGothic" and "MS UI Gothic" fonts when text antialiasing is off and when LCD antialiasing is enabled. If greyscale antialiasing is enabled, the glyphs are stretched as expected, this case was handled in JDK-8204929; it can be used as a workaround.
>
> All client tests pass.
>
> ~~The test could be *headless*, but headless systems, especially with Linux, don't have fonts installed. Without fonts, the test is useless, therefore I made it *headful*.~~
>
> The test is *headless*.
This pull request has now been integrated.
Changeset: 62610203
Author: Alexey Ivanov <aivanov at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/62610203f18095cbd25b456f0622bad033a65a5d
Stats: 224 lines in 2 files changed: 222 ins; 0 del; 2 mod
8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1)
Ignore bitmaps embedded into fonts for non-uniform scales
Reviewed-by: prr, serb
-------------
PR: https://git.openjdk.org/jdk/pull/15335
More information about the client-libs-dev
mailing list