如何解决在图像上绘制文本不适用于 Graphics2D
我在想在图像上写一些文字时遇到了一些问题。 正如我所看到的,可以使用以下代码完成:
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)
有没有人知道那里可能有什么问题?
非常感谢您的阅读。
解决方法
同样,您的代码适用于我,使用在线图片:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.*;
public class ImageAddingText {
public static void main(String args[]) throws IOException {
String imgUrl = "https://media.glamour.com/photos/5a425fd3b6bcee68da9f86f8/16:9/w_2560%2Cc_limit/best-face-oil.png";
// BufferedImage image = ImageIO.read(new File("C:\\Users\\Slobodan\\Desktop\\image2.png"));
URL url = new URL(imgUrl);
BufferedImage image = ImageIO.read(url);
// display the original image
Icon icon = new ImageIcon(image);
JOptionPane.showMessageDialog(null,icon);
Font font = new Font("Arial",Font.BOLD,20);
Graphics g = image.getGraphics();
g.setFont(font);
g.setColor(Color.GREEN);
g.drawString("Medium",50,50);
g.dispose(); // you should always dispose resources *you* create yourself
// display the changed image
icon = new ImageIcon(image);
JOptionPane.showMessageDialog(null,icon);
System.out.println("Finished");
System.out.println(image.getWidth());
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。