在 Java 中给图片添加文字通常涉及到以下几种实现方式:使用 Java 原生库、使用第三方库 Apache PDFBox、使用第三方库 Java ImageIO。
下面将为你详细介绍每种方式的步骤流程,包括所需的依赖坐标和示例代码:
这种方式使用 Java 提供的 Graphics2D 类来在图片上绘制文字。
步骤流程:
示例代码:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageTextDrawing {
public static void main(String[] args) throws Exception {
File inputFile = new File("input.jpg");
BufferedImage image = ImageIO.read(inputFile);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.RED);
g2d.setFont(new Font("Arial", Font.BOLD, 36));
g2d.drawString("Hello, Java!", 100, 100);
g2d.dispose();
File outputFile = new File("output.jpg");
ImageIO.write(image, "jpg", outputFile);
}
}
Apache PDFBox 是一个用于创建和操作 PDF 文档的开源 Java 库,它也可以用于给图片添加文字。
依赖坐标:
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.27</version>
</dependency>
implementation 'org.apache.pdfbox:pdfbox:2.0.27'
步骤流程:
示例代码:
import org.apache.pdfbox.pdmodel.*;
import org.apache.pdfbox.pdmodel.font.*;
import java.io.*;
public class PDFImageText {
public static void main(String[] args) throws Exception {
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.beginText();
PDFont font = PDType1Font.HELVETICA_BOLD;
contentStream.setFont(font, 12);
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Hello, PDFBox!");
contentStream.endText();
contentStream.close();
document.save("output.pdf");
document.close();
}
}
Java ImageIO 提供了对图像处理的标准 API,可以用来给图片添加文字。
步骤流程:
示例代码:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageIOText {
public static void main(String[] args) throws Exception {
File inputFile = new File("input.jpg");
BufferedImage image = ImageIO.read(inputFile);
Graphics2D g2d = image.createGraphics();
g2d.setColor(Color.RED);
g2d.setFont(new Font("Arial", Font.BOLD, 36));
g2d.drawString("Hello, Java ImageIO!", 100, 100);
g2d.dispose();
File outputFile = new File("output.jpg");
ImageIO.write(image, "jpg", outputFile);
}
}
这些方法中,你可以根据你的需求选择其中一种来添加文字到图片中。记得替换示例代码中的文件名和文字内容来适应你自己的场景。