一、上代码
废话不多说,直接上代码
public class WaterMarkTest {
/**
* 设置水印
* @param graphics2D 绘图对象
* @param context 要绘制的内容
* @param x 位置:横坐标
* @param y 位置:纵坐标
* @param font 字体
* @param color 字体颜色(RGB Color对象)
*/
public static void setMark(Graphics2D graphics2D, String context, Integer x, Integer y, Font font, Color color) {
// 设置字体
graphics2D.setFont(font);
// 设置颜色
graphics2D.setColor(color);
// 写字
graphics2D.drawString(context, x, y);
}
public static void main(String[] args) throws IOException {
// 读取原图片信息
ClassPathResource resource = new ClassPathResource("test.png");
InputStream inputStream = resource.getInputStream();
//文件转化为图片
Image srcImg = ImageIO.read(inputStream);
//获取图片的宽、高
int srcImgWidth = srcImg.getWidth(null);
int srcImgHeight = srcImg.getHeight(null);
// 加水印
BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bufImg.createGraphics();
g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
// 证书中写字
setMark(g, "张三丰 666啊", 335, 400, new Font("Songti SC", Font.PLAIN, 64), Color.decode("#332e2e"));
setMark(g, "666 高级认证", 380, 480, new Font("Songti SC", Font.PLAIN, 46), Color.decode("#e71f19"));
//画出水印
g.dispose();
// 下载证书
ByteArrayOutputStream bs = new ByteArrayOutputStream();
ImageOutputStream imOut = ImageIO.createImageOutputStream(bs);
ImageIO.write(bufImg, "png", imOut);
InputStream inputStream2 = new ByteArrayInputStream(bs.toByteArray());
OutputStream outStream = new FileOutputStream("result.png");
IOUtils.copy(inputStream2, outStream);
inputStream.close();
outStream.close();
}
}
二、注意事项
2.1、如何确定自己的字体有哪些?
public static void main(String[] args) {
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontName = e.getAvailableFontFamilyNames();
for (int i = 0; i < fontName.length; i++) {
System.out.println(fontName[i]);
}
}
2.2、如何确定x、y轴位置?
类似于下面, "张三丰 666啊"这个左下角位置(335px, 400px),那么x、y位置就是335、400
三、原图材料附件

最后修改时间:2024-07-03 21:28:18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




