Java图片添加文字简介
在Java中,可以使用Java的2D图形库来在图片上添加文字,Java的2D图形库提供了丰富的绘图功能,可以方便地实现图片的绘制、缩放、旋转等操作,本文将介绍如何在Java中使用2D图形库在图片上添加文字。
准备工作
1、导入相关库
首先需要导入Java的2D图形库和ImageIO库,在项目的pom.xml文件中添加以下依赖:
<dependencies> <dependency> <groupId>javax.imageio</groupId> <artifactId>imageio</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>javax.swing</groupId> <artifactId>javax.swing-ui</artifactId> <version>1.0</version> </dependency> </dependencies>
2、创建一个窗口用于显示图片
import javax.swing.*; import java.awt.*; public class ImageWithText extends JFrame { public static void main(String[] args) { SwingUtilities.invokeLater(() -> { ImageWithText imageWithText = new ImageWithText(); imageWithText.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); imageWithText.setVisible(true); }); } }
在图片上添加文字的方法
1、读取图片文件
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class ImageWithText extends JFrame { private BufferedImage image; private String text; private Font font; private Color color; private int x, y; public static void main(String[] args) { SwingUtilities.invokeLater(() -> { ImageWithText imageWithText = new ImageWithText(); imageWithText.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); imageWithText.setVisible(true); }); } }
2、在图片上添加文字的方法:drawTextOnImage()
private void drawTextOnImage() throws IOException { BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D graphics = newImage.createGraphics(); graphics.drawImage(image, null, null); // 将原图绘制到新图上,坐标为null表示左上角对齐,不进行缩放等操作,可以根据需要修改坐标参数进行绘制位置调整,例如graphics.drawImage(image, x, y, null, null, null);表示将图片绘制在指定的位置(x, y),接下来调用graphics对象的drawString方法在图片上添加文字,最后释放资源并将新图设置为窗口的内容面板,具体代码如下:graphics.drawString(text, x, y); // 在指定位置绘制文字,x和y是文字的横纵坐标,根据需求进行调整,如果要设置字体样式、颜色等属性,可以使用Font和Color类进行设置,示例代码如下:font = new Font("宋体", Font.BOLD, 24); color = Color.RED; graphics.setFont(font); graphics.setColor(color); graphics.drawString(text, x, y); // 注意:坐标系原点在左下角,向右为正方向,向上为负方向,因此在使用坐标时需要注意调整顺序,例如graphics.drawString(text, y, x); // 将文字绘制在图片的上方,graphics.dispose(); //释放资源,this.getContentPane().add(new JLabel(new ImageIcon(newImage))); // 将新图设置为窗口的内容面板,这样就可以在窗口中看到添加了文字的图片了,完整代码如下: ```原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/158106.html