图片水印工具类java
关于jar包的导入我就不多说了,我会把引入的jar包显示出来,大家自行Google
package com.net.util;import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream;import javax.imageio.ImageIO; import javax.swing.ImageIcon;/******************************************************************************** Description: 图片水印工具类 * @author zhangdi* @version 1.0*/ public class ImageRemarkUtil {// 水印透明度private static float alpha = 0.5f;// 水印横向位置private static int positionWidth = 150;// 水印纵向位置private static int positionHeight = 300;// 水印文字字体private static Font font = new Font("宋体", Font.BOLD, 72);// 水印文字颜色private static Color color = Color.red;/*** * @param alpha* 水印透明度* @param positionWidth* 水印横向位置* @param positionHeight* 水印纵向位置* @param font* 水印文字字体* @param color* 水印文字颜色*/public static void setImageMarkOptions(float alpha, int positionWidth,int positionHeight, Font font, Color color) {if (alpha != 0.0f)ImageRemarkUtil.alpha = alpha;if (positionWidth != 0)ImageRemarkUtil.positionWidth = positionWidth;if (positionHeight != 0)ImageRemarkUtil.positionHeight = positionHeight;if (font != null)ImageRemarkUtil.font = font;if (color != null)ImageRemarkUtil.color = color;}/*** 给图片添加水印图片* * @param iconPath* 水印图片路径* @param srcImgPath* 源图片路径* @param targerPath* 目标图片路径*/public static void markImageByIcon(String iconPath, String srcImgPath,String targerPath) {markImageByIcon(iconPath, srcImgPath, targerPath, null);}/*** 给图片添加水印图片、可设置水印图片旋转角度* * @param iconPath* 水印图片路径* @param srcImgPath* 源图片路径* @param targerPath* 目标图片路径* @param degree* 水印图片旋转角度*/public static void markImageByIcon(String iconPath, String srcImgPath,String targerPath, Integer degree) {OutputStream os = null;try {Image srcImg = ImageIO.read(new File(srcImgPath));BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);// 1、得到画笔对象Graphics2D g = buffImg.createGraphics();// 2、设置对线段的锯齿状边缘处理 g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null),srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0,null);// 3、设置水印旋转if (null != degree) {g.rotate(Math.toRadians(degree),(double) buffImg.getWidth() / 2,(double) buffImg.getHeight() / 2);}// 4、水印图片的路径 水印图片一般为gif或者png的,这样可设置透明度ImageIcon imgIcon = new ImageIcon(iconPath);// 5、得到Image对象。Image img = imgIcon.getImage();g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,alpha));// 6、水印图片的位置g.drawImage(img, positionWidth, positionHeight, null);g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));// 7、释放资源 g.dispose();// 8、生成图片os = new FileOutputStream(targerPath);ImageIO.write(buffImg, "JPG", os);System.out.println("图片完成添加水印图片");} catch (Exception e) {e.printStackTrace();} finally {try {if (null != os)os.close();} catch (Exception e) {e.printStackTrace();}}}/*** 给图片添加水印文字* * @param logoText* 水印文字* @param srcImgPath* 源图片路径* @param targerPath* 目标图片路径*/public static void markImageByText(String logoText, String srcImgPath,String targerPath) {markImageByText(logoText, srcImgPath, targerPath, null);}/*** 给图片添加水印文字、可设置水印文字的旋转角度* * @param logoText* @param srcImgPath* @param targerPath* @param degree*/public static void markImageByText(String logoText, String srcImgPath,String targerPath, Integer degree) {InputStream is = null;OutputStream os = null;try {// 1、源图片Image srcImg = ImageIO.read(new File(srcImgPath));BufferedImage buffImg = new BufferedImage(srcImg.getWidth(null),srcImg.getHeight(null), BufferedImage.TYPE_INT_RGB);// 2、得到画笔对象Graphics2D g = buffImg.createGraphics();// 3、设置对线段的锯齿状边缘处理 g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);g.drawImage(srcImg.getScaledInstance(srcImg.getWidth(null),srcImg.getHeight(null), Image.SCALE_SMOOTH), 0, 0,null);// 4、设置水印旋转if (null != degree) {g.rotate(Math.toRadians(degree),(double) buffImg.getWidth() / 2,(double) buffImg.getHeight() / 2);}// 5、设置水印文字颜色 g.setColor(color);// 6、设置水印文字Font g.setFont(font);// 7、设置水印文字透明度 g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,alpha));// 8、第一参数->设置的内容,后面两个参数->文字在图片上的坐标位置(x,y) g.drawString(logoText, positionWidth, positionHeight);// 9、释放资源 g.dispose();// 10、生成图片os = new FileOutputStream(targerPath);ImageIO.write(buffImg, "JPG", os);System.out.println("图片完成添加水印文字");} catch (Exception e) {e.printStackTrace();} finally {try {if (null != is)is.close();} catch (Exception e) {e.printStackTrace();}try {if (null != os)os.close();} catch (Exception e) {e.printStackTrace();}}}// public static void main(String[] args) { // String srcImgPath = "d:/1.jpg"; // String logoText = "复 印 无 效"; // String iconPath = "d:/2.jpg"; // // String targerTextPath = "d:/qie_text.jpg"; // String targerTextPath2 = "d:/qie_text_rotate.jpg"; // // String targerIconPath = "d:/qie_icon.jpg"; // String targerIconPath2 = "d:/qie_icon_rotate.jpg"; // // System.out.println("给图片添加水印文字开始..."); // // 给图片添加水印文字 // markImageByText(logoText, srcImgPath, targerTextPath); // // 给图片添加水印文字,水印文字旋转-45 // markImageByText(logoText, srcImgPath, targerTextPath2, -45); // System.out.println("给图片添加水印文字结束..."); // // System.out.println("给图片添加水印图片开始..."); // setImageMarkOptions(0.3f, 1, 1, null, null); // // 给图片添加水印图片 // markImageByIcon(iconPath, srcImgPath, targerIconPath); // // 给图片添加水印图片,水印图片旋转-45 // markImageByIcon(iconPath, srcImgPath, targerIconPath2, -45); // System.out.println("给图片添加水印图片结束..."); // // } }
转载于:https://www.cnblogs.com/zhangdiIT/p/6748913.html
图片水印工具类java相关推荐
- Java实现图片水印工具类
一 点睛 给图片加水印是一种常见的防伪技术,在此提供一个图片水印工具类. 二 代码 package com.imooc.demo.common.util;import javax.imageio.Im ...
- Java 图片添加数字暗水印工具类
Java 图片添加数字暗水印工具类. package cnki.thesis.common.utils;import org.opencv.core.*;import java.util.ArrayL ...
- 文件下载加水印工具类(pdf、word、excel、图片)
文件加水印实现 支持文件类型 /*** 目前可支持加水印的文件类型*/private static List<String> FILE_TYPE_WATER_LIST = Arrays.a ...
- 图片处理工具类 - ImageUtils.java
纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...
- java 图片合成 工具类_Java实现的微信图片处理工具类【裁剪,合并,等比例缩放等】...
本文实例讲述了Java实现的微信图片处理工具类.分享给大家供大家参考,具体如下: 现在 外面核心,图片文章比较少,看了拷贝代码,而用不了,用相应jar包处理,很多等比例缩放,达不到 想要的给予的期望: ...
- java图片处理工具类,很实用哦
笔者以前在项目里要求处理图片,当时在博客里看到这篇不错的帖子,但是没有看到原作的出处,于是就不客气的转载下来了...同时感谢原创写出这么好的东西. 这个图像工具类可实现以下常用功能:缩放图像.切割图像 ...
- java 图片image工具类,ImageUtil.java
1.java 图片image工具类,ImageUtil.java package com.broadway.numpeople.utils;import java.awt.Color; import ...
- Java 上传图片至OSS并返回图片地址工具类可直接用
OSS上传图片并返回图片地址工具类 OSS上传图片并且返回地址工具类 可以直接拿去用 后续会继续更新 需要注意的点: 下面代码里的@Value里的几个值我是放在application.yml文件里的, ...
- Java实现pdf转图片的工具类(三种方法实现PDF转图片的案例)【亲测可用】
提示:有些时候我们需要在项目中展示PDF,所以我们可以将PDF转为图片,然后已图片的方式展示,效果很好.Java使用各种技术将pdf转换成图片格式,并且内容不失帧.清晰可见,该工具类也是开发中常用到的 ...
- java captcha 验证码_验证码图片生成工具类——Captcha.java
验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. import java.awt.Color; import java.awt ...
最新文章
- 2022-2028年中国汽轮发电机行业市场深度分析及发展趋势分析报告
- Activity栈管理(二):Launch Mode
- 太阳能工程联箱知识_暖通设计|太阳能热水系统设计参考手册(供参考)
- 解决windows版 duet display无法正常连接 【看完就会】
- EL表达式 JSTL(详解)
- HTML+CSS+JS实现 ❤️swiper倾斜图片特效❤️
- C# Winform控件动态删除
- 异常值(outlier)
- window下的git工具msysgit的使用
- IO设备错误,无法运行此项请求,要怎样寻回数据
- Python Excel操作人口普查
- (便携式投影仪) FP7209补光灯调光芯片无频闪无抖动 LED升压恒流芯片最大驱动300W
- 恒生电子java招聘_【恒生电子工资】java开发工程师待遇-看准网
- 芥川龙之介《山药粥》
- 基础(四)之java后端根据经纬度获取地址
- 计算机安全模式win7,安全模式启动,教您Win7怎么进入安全模式
- linux系列(七):shell编程、shell概念、ssh协议概念、执行shell文件的三种方式
- 文件系统FATFS的移植教程
- 这帮死磕技术的理工男造了一支笔
- 串口通信与网口通信简介
热门文章
- python基础篇——列表与列表算法(下)
- windows系统c语言编译环境,在Windows平台搭建C语言开发环境
- java http请求_零基础学Java,掌握Java基础难不难?
- java 读取 dto_DTO 实现 service 和 controller 之间值传递的操作
- macbookpython常见问题_python读取文件常见问题(for macOS)
- 文本聚类python fcm_机器学习笔记----Fuzzy c-means(FCM)模糊聚类详解及matlab实现
- 四十二、在线预览pdf文件
- Bash基础——快捷键
- 【踩坑速记】二次依赖?android studio编译运行各种踩坑解决方案,杜绝弯路,总有你想要的~...
- MongoDB:Map-Reduce