java 图片加水印
2017-11-17 11:36
281 查看
工具类
效果
import javax.imageio.ImageIO; 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; public class WaterMark { /** * @param srcImgPath 源图片路径 * @param tarImgPath 保存的图片路径 * @param waterMarkContent 水印内容 * @param markContentColor 水印颜色 * @param font 水印字体 */ public void addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent, Color markContentColor, Font font) { try { // 读取原图片信息 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 - getWatermarkLength(waterMarkContent, g) - 10; int y = srcImgHeight - 10; 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, 60); //水印字体 String srcImgPath="C://Users//pactera//Desktop//exe/333.jpg"; //源图片地址 String tarImgPath="C://Users//pactera//Desktop//exe/444.jpg"; //待存储的地址 String waterMarkContent="图片来源:随手而来"; //水印内容 Color color=new Color(255,255,255,128); //水印图片色彩以及透明度 new WaterMark().addWaterMark(srcImgPath, tarImgPath,waterMarkContent, color ,font); } }
效果
相关文章推荐
- 用Java实现在图片上添加水印图片和水印文字
- JAVA txt文件生成JPG图片水印文章
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
- java 添加水印 保留原图片的像素
- 使用Java添加图片水印和文字水印
- Java通过thumbnailator对图片进行缩放,裁剪,添加水印等..
- java-图片加水印,文字水印
- Java开发图片水印
- JAVA实现图片加水印及Base64图片字符串加水印
- java操作pdf生成图片水印
- java实现图片上传并添加水印demo
- java 自由自在的给上传图片打水印
- java图片文字水印、图片水印、缩放、补白处理
- java给图片添加水印文字
- java实现图片加水印
- JAVA实用案例之图片水印开发
- java 为pdf添加水印图片
- JAVA给图片添加水印和文字
- java 给图片打水印
- Java 给图片和动图添加水印的方法