【发布时间】:2021-01-31 18:00:20
【问题描述】:
我想在图像上写一些文字时遇到了一些问题。 正如我所看到的,可以使用以下代码完成:
package asd;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class ImageAddingText {
public static void main(String args[]) throws IOException {
BufferedImage image = ImageIO.read(new File("C:\\Users\\Slobodan\\Desktop\\image2.png"));
Font font = new Font("Arial", Font.BOLD, 20);
Graphics g = image.getGraphics();
g.setFont(font);
g.setColor(Color.GREEN);
g.drawString("Medium", 50, 50);
System.out.println("Finished");
System.out.println(image.getWidth());
}
}
所以图像被加载到内存中,image.getGraphics() 创建 Graphics2D 对象,然后设置字体、颜色和绘制字符串。
但是在图像中没有任何反应,它仍然完全保持不变。
图像是黑白的,白色占据了大部分空间。我试图改变颜色,扩展图像,但似乎没有任何帮助。我期待我可以直接在图像上看到变化,我认为它应该以这种方式工作。在它运行和编译之后,根本没有错误消息。
我将 Java 8 与 Spring Boot 一起使用。 (虽然我只运行 Java)
有没有人知道那里可能是什么问题?
非常感谢您的阅读。
【问题讨论】:
-
考虑将您的代码和您的问题压缩到为我们编译和运行的最小程序中,它向我们展示了您的问题,但除此之外,minimal reproducible example。请阅读该链接,因为它会确切地告诉您我的要求、如何创建以及为什么它可以帮助您和我们。
-
你能解释一下为什么这还不够好吗?它编译并运行,但不起作用。它是运行所需的最少代码,可在此页面baeldung.com/java-add-text-to-image 的第 2.2 节中找到。文件内的路径是指图像位置。认为我已经阅读了您的评论..
-
好的,这个怎么样:1)你知道错误或问题在哪里吗? 2)您如何或为什么知道您发布的代码中存在问题? 3)如果代码对我来说看起来“OK”,我怎么能猜出如何或在哪里修复它?也许其他人可以看到这个然后说,“啊哈,这是你的问题”,但对于我的生活,我不能。但无论如何,该链接应该已经告诉您这些信息,而且您可能真的应该阅读它。
-
关于,"... 它是运行所需的最少代码" -- 没有 main 方法,没有导入,没有图像文件,也许它会运行你,但它肯定不会为其他任何人运行。同样,minimal reproducible example 链接将告诉您运行所需的最少代码是什么意思。
-
@HovercraftFullOfEels 我的意思是这是我的整个主要方法,其中没有其他代码。没有任何图像导入。图像位于桌面上,路径“C:\\Users\\Slobodan\\Desktop\\image2.png”是它在桌面上的位置。另外,我认为代码会读取图像,因为它正确显示了它的重量。现在,我不知道我应该如何更改代码来复制我的问题,因为主要问题是如何将文本写入图像,并找到了这个确切代码的几个示例以及它以前应该如何工作。
标签: java bufferedimage graphics2d drawstring