我的 java 项目中有一个位于 images/image.png 的图像。我想写一个方法,其签名如下
byte[] mergeImageAndText(String imageFilePath, String text, Point textPosition);
此方法将加载位于 imageFilePath
和图像位置 textPosition
(左上)的图像,我想写入 text
,然后我想返回一个表示与文本合并的新图像的 byte[]。
最佳答案
试试这个方法:
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
public class ImagingTest {
public static void main(String[] args) throws IOException {
String url = "http://icomix.eu/gr/images/non-batman-t-shirt-gross.jpg";
String text = "Hello Java Imaging!";
byte[] b = mergeImageAndText(url, text, new Point(200, 200));
FileOutputStream fos = new FileOutputStream("so2.png");
fos.write(b);
fos.close();
}
public static byte[] mergeImageAndText(String imageFilePath,
String text, Point textPosition) throws IOException {
BufferedImage im = ImageIO.read(new URL(imageFilePath));
Graphics2D g2 = im.createGraphics();
g2.drawString(text, textPosition.x, textPosition.y);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(im, "png", baos);
return baos.toByteArray();
}
}
关于java - 如何使用 Java 加载图像并向其中写入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6540376/