GlyphVector.getPixelBounds возвращает нулевой прямоугольник, так как jdk8u232 - PullRequest
0 голосов
/ 22 апреля 2020

Я обнаружил изменения в поведении этого кода, начиная с jdk8u232, похоже, это зависит от большого размера шрифта

BufferedImage bufferedImage = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
Font font = new Font("Dejavu Sans", Font.PLAIN, 3500);
Graphics2D graphics = bufferedImage.createGraphics();
GlyphVector glyphVector = font.createGlyphVector(graphics.getFontRenderContext(), "text");
Rectangle bounds = glyphVector.getPixelBounds(null, 0, 0);
System.out.println(bounds);

Для jdk8u222 он печатает java.awt.Rectangle[x=94,y=-2457,width=6791,height=2507]

Для jdk8u232 - java.awt.Rectangle[x=0,y=0,width=0,height=0]

ОС: Linux Mint 19.3 Триша

После отладки я обнаружил, что FileFontStrike.getGlyphImageBounds возвращает пустой прямоугольник. Но на первый взгляд эти методы не меняются при обновлении.

Я хотел бы знать, почему это происходит? Могу ли я переписать код для достижения поведения от u222?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...