在图片上加水印,支持字体样式,位置,大小,颜色
在图片上加水印,支持字体样式,位置,大小,颜色

在图片上加水印,支持字体样式,位置,大小,颜色
直接看源代码:
package com.test;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;
/**
* 图片上加水印
*
* @author 原创 http://www.javakcsj.com/
* @date2018-8-22
*/
public class Pic2WaterTool {
public void addWaterMark(String srcImgPath, String tarImgPath,
String waterMarkContent, Color markContentColor, Font font) {
try {
// 读取source源图片信息
File srcImgFile = new File(srcImgPath);
Image srcImg = ImageIO.read(srcImgFile);// 把需要水印的文字转换成图片了
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);
g.setColor(markContentColor); // 根据图片的背景设置水印颜色
g.setFont(font); // 字体样式
// 水印的位置,即坐标
// int x = srcImgWidth - 2*getWatermarkLength(waterMarkContent, g);
// int y = srcImgHeight - 2*getWatermarkLength(waterMarkContent, g);
int x = 100;
int y = 100;
g.drawString(waterMarkContent, x, y);// 开始水印
g.dispose();
// 把完成的图片复制到本地
FileOutputStream outImgStream = new FileOutputStream(tarImgPath);
ImageIO.write(bufImg, "jpg", outImgStream);
System.out.println("完成了添加");
outImgStream.flush();
outImgStream.close();
} catch (Exception e) {
// TODO: handle exception
}
}
public int getWatermarkLength(String waterMarkContent, Graphics2D g) {
return g.getFontMetrics(g.getFont()).charsWidth(
waterMarkContent.toCharArray(), 0, waterMarkContent.length());
}
public static void main(String[] args) {
Font font = new Font("微软雅黑", Font.PLAIN, 35); // 水印字体的样式
String srcImgPath = "D:/a.jpg"; // old图片
String tarImgPath = "D:/b.jpg"; // 完成后的图片的地址
String waterMarkContent = "哈哈哈哈哈"; // 水印的具体内容
Color color = new Color(255, 255, 255);
// 水印图片色彩以及透明度
new Pic2WaterTool().addWaterMark(srcImgPath, tarImgPath,
waterMarkContent, color, font);
}
}
直接可以拷贝到你的工程中测试,有问题可以留言。
大家都在看
java批量压缩文件

利用zip工具,批量将文件夹或者文件压缩,提供java源代码下载(java课程设计网原创)...查看更多
java图片切割

java课程设计之java图片切割,提供java源代码下载(java课程设计网原创)...查看更多
jsoup实战之爬取网站的信息

java课程设计之jsoup实战之爬取网站的信息,提供java源代码下载(java课程设计网原创)...查看更多
java批量压缩文件

利用zip工具,批量将文件夹或者文件压缩,提供java源代码下载(java课程设计网原创)...查看更多
发送邮件客户端,带发送附件

java课程设计之发送邮件客户端,带发送附件,提供java源代码下载(java课程设计网原创)...查看更多
java经纬度算两点之间的距离

java课程设计之java经纬度算两点之间的距离,提供java源代码下载(java课程设计网原创)...查看更多
java jsoup 爬取1688网站信息,详细例子

java jsoup 爬取1688网站信息,详细例子,采用javajsoup...查看更多
基于Misty1算法的加密软件(JAVA)的实现

java课程设计之基于Misty1算法的加密软件(JAVA)的实现,提供java源代码下载(java课程设计网原创)...查看更多
(0) 回复