谁能帮我找到一种方法来缩放Java(Graphics2D)中的字符串/字符以完全适合给定大小的矩形(以便它从内部接触矩形)?
这是我到目前为止所拥有的:
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());
我运行此代码的问题是,虽然字符串被缩放以大致适合矩形大小,但它并不完全适合它,即。它不会从内部触及矩形边界(这是我想要它做的!)。
使用不同的字体有帮助吗?我目前正在使用等宽字体。或者,我是否必须以不同的方式进行缩放?
谢谢你的帮助!