0 values for Font.getStringBounds()
David Alvarez
alvdavi at amazon.com
Tue Aug 11 22:13:16 UTC 2020
Hi,
We have seen this can cause characters to overlap on swing when using
large fonts too. It seems JDK-8225286, which was backported into 8,
introduced the issue.
It seems to me we might need to backport JDK-8233097 [1] in order to fix
this.
--
David
[1] https://bugs.openjdk.java.net/browse/JDK-8233097
On 2020-08-10 02:15, Peter Felix wrote:
> CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
>
>
>
> I’d like to report a bug based on Font.getStringBounds().
>
> With the following lines it is reproducible:
>
> String test = "abcdefghijklmnopqrstuvwxyz ";
> Font f = new Font("Arial", 0, 1560);
> int[] widths = new int[test.length()];
> for (int i = 0; i < widths.length; i++) {
> FontRenderContext context = new FontRenderContext(new AffineTransform(1, 0, 0, 1, 0, 0), true, true);
> double w = f.getStringBounds(test, i, i + 1, context).getWidth();
> widths[i] = (int) w;
> }
>
> for (int i = 0; i < widths.length; i++) {
> System.out.print(widths[i] + " ");
> }
>
>
> Output ok (with Amazon Corretto 8.202):
> 867 867 780 867 867 433 867 867 346 346 780 346 1299 867 867 867 867 519 780 433 867 780 1126 780 780 780 433
> If I set the font size to 3000 instead of 1560 then the output is
> 1668 1668 1500 1668 1668 833 1668 1668 666 666 1500 666 2499 1668 1668 1668 1668 999 1500 833 1668 1500 2166 1500 1500 1500 833
> If I set the font size to 100 instead of 1560 then the output is
> 55 55 50 55 55 27 55 55 22 22 50 22 83 55 55 55 55 33 50 27 55 50 72 50 50 50 27
>
>
> Output nok (with Amazon Corretto 8.232, 8.252, 8.265 and with AdoptOpenJDK 8.265):
> 867 0 780 0 867 0 0 0 0 0 0 0 0 867 867 0 0 519 780 0 867 780 0 780 0 780 433
> If I set the font size to 3000 instead of 1560 then the output is
> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 833
> If I set the font size to 100 instead of 1560 then the output is (with this size the values are ok)
> 55 55 50 55 55 27 55 55 22 22 50 22 83 55 55 55 55 33 50 27 55 50 72 50 50 50 27
>
> Thanks,
>
> Peter Felix
>
> Software-Entwickler
>
>
>
> Telefon:
>
> +41 44 809 40 60
>
> E-Mail: felix at imagic.ch<mailto:felix at imagic.ch>
>
>
>
> Imagic Bildverarbeitung AG
>
> Europa-Strasse 27
>
> CH-8152 Glattbrugg
>
>
>
> www.imagic.ch<http://www.imagic.ch>
>
> [LinkedIn]<https://www.linkedin.com/company/imagic-ch/> [xing_share_button3] <https://www.xing.com/companies/imagicbildverarbeitungag/updates>
>
>
>
More information about the jdk8u-dev
mailing list