Может ли кто-нибудь помочь мне найти способ масштабировать строку/символ в Java (Graphics2D), чтобы точно соответствовать прямоугольнику заданного размера (так, чтобы он касался прямоугольника от внутри)?Scale String в Java для размещения прямоугольника внутри
Это то, что я до сих пор:
String s = "S"; // always a single character!
Rectangle rect = getRect(); // defines the desired size and position
AffineTransform transform = new AffineTransform();
transform.setToTranslation(rect.getX(), rect.getY());
transform.scale(rect.getWidth()/(double) fm.stringWidth(s),
rect.getHeight()/(double) fm.getAscent());
FontRenderContext frc = image.getFontRenderContext();
TextLayout tl = new TextLayout(s, g2d.getFont(), frc);
Shape shape = tl.getOutline(transform);
g2d.setClip(shape);
g2d.fill(shape.getBounds());
Проблема я работает этот код является то, что хотя строка масштабируется прямоугольники размером примерно, это не соответствует его точно, т.е. , он не касается границ прямоугольников изнутри (это то, что я хочу, чтобы он делал!).
Помогает ли это использовать другой шрифт? На данный момент я использую моноширинный шрифт. Или, мне нужно делать масштабирование по-другому?
Благодарим за помощь!
Почему вы не используете графическую инфраструктуру, такую как Swing? –
Я просто рисую изображение для веб-приложения. Знаете ли вы, что это простое решение для Swing? – Tobieh
Извините, я не очень внимательно изучил вопрос. Я думаю, вам придется поиграть с индивидуальным интервалом между символами, чтобы он точно касался краев окна. –