【发布时间】:2021-12-01 07:07:04
【问题描述】:
我正在尝试使用以下代码向 Java 中的图像添加一些文本:
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File("img.png"));
Graphics g = image.getGraphics();
Rectangle rectangle = new Rectangle(image.getWidth(), image.getHeight());
g.setFont(g.getFont().deriveFont(30f));
drawCenteredString(g, "TexvzgdsfadvcfkgsdASKJDFHJGgkdgfsakagjASGHDJStTexvzgdsfadvcfkgsdASKJDFHJGgkdgfsakagjASGHDJSt", rectangle, g.getFont());
g.dispose();
ImageIO.write(image, "png", new File("out.png"));
}
public static void drawCenteredString(Graphics g, String text, Rectangle rect, Font font) {
FontMetrics metrics = g.getFontMetrics(font);
int x = rect.x + (rect.width - metrics.stringWidth(text)) / 2;
int y = rect.y + ((rect.height - metrics.getHeight()) / 2) + metrics.getAscent();
g.setFont(font);
g.drawString(text, x, y);
}
但我有一个问题:我需要能够缩放字体大小或将单词发送到新行,以便整个字符串适合图像中心的矩形区域,最大大小为 x,是的。 我该怎么做?
【问题讨论】:
-
那么,你想要这两者中的哪一个:调整字体大小,还是换行?
-
我真的不知道哪个选项是最好的。由于该软件是一个 instagram 页面管理器,它需要在 instagram 帖子中阅读文本,但我认为调整字体大小是最好的选择
标签: java image text region square