这两天公司网站首页广告栏要定制图片水印,抽空研究下。
代码如下
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 java.io.IOException;import javax.imageio.ImageIO;/** * 给图片添加水印 * font:字体样式 * color:颜色和透明度样式 * Image:图片 * Graphics2D:提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制 */public class WaterMarkUtils { public static void main(String[] args) throws IOException { Font font = new Font("微软雅黑", Font.BOLD, 50); //水印字体 String srcImgPath="C:/Users/Admin/Desktop/src.jpg"; //源图片地址 String tarImgPath="C:/Users/Admin/Desktop/des.jpg"; //待存储的地址 String[] waterMarkContent={ //水印内容 "1、这里是图片水印的内容", "2、这里是图片水印内容测试的第二个内容", "3、这里是图片水印内容测试的第三个内容,内容比第二个要长", "4、你以为第三张图片以后就就没了么?", "5、还有,骚年不要着急,还有," }; Color color=new Color(255,255,255,255); //水印图片色彩以及透明度 new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, waterMarkContent, color,font); } //添加水印 public void addWaterMark(String srcImgPath,String tarImgPath,String[] waterMarkContent,Color markContentColor,Font font) throws IOException{ //读取原图片信息 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); //设置水印坐标 for(int i=0;i
效果图如下
以后用到的情况下,可以根据实际需要将 水印的坐标设置 和 字体样式 根据实际需求单独封装即可