java给图片加水印
maven依赖
<dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version>
</dependency>
代码实现
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;/*** 图片添加水印工具类 文字水印 图片水印 利用jdk ,不依赖第三方*/
public class ImageWatermarkUtils {static final String NEW_IMAGE_NAME_PRE_STR = "_water";// 水印透明度private static float alpha = 0.5f;// 水印横向位置private static int positionWidth = 100;// 水印纵向位置private static int positionHeight = 100;// 水印文字字体private static Font font = new Font("宋体", Font.BOLD, 32);// 水印文字颜色private static Color color = Color.red;/*** @param args*/public static void main(String[] args) {String srcImgPath = "C:\\Users\\28628\\Desktop\\aaa.jpg";String iconPath = "C:\\Users\\28628\\Desktop\\bbb.jpg";/** 给图片添加文字水印 **/markImageByText("hell", srcImgPath, iconPath, 1);}/*** 给图片添加水印文字、可设置水印文字的旋转角度** @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 {// targerPath = srcImgPath.substring(0, srcImgPath.lastIndexOf(".")) + NEW_IMAGE_NAME_PRE_STR + "f"
// + srcImgPath.substring(srcImgPath.lastIndexOf("."));// 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、设置水印文字Fontg.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();}}}
}
java给图片加水印相关推荐
- Java为图片加水印
Java为图片加水印工具类 一.简介 使用Java在图片上加上水印,可以添加文字.图片 编写一个工具类的代码优化和整理 使用建造者模式提高工具类的可配置性 二.效果图 三.基本参数 // ++++++ ...
- JAVA实现图片加水印及Base64图片字符串加水印
JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章<base64字符串加水印 >实在 场景一: 涉及上送过来的 ...
- java给图片加水印_java如何给图片加水印
最近研究一下java如何给上传的图片加上水印,专门为这个功能写了一个方法类,然后再进行调用,代码如下:package WaterMark; import java.awt.AlphaComposite ...
- java给图片加水印_Java 为图片添加水印(图片水印,文字水印)
Java 为图片添加水印(图片水印,文字水印) 2014-07-28·WeaponX 5267 次浏览 ```java import java.awt.Color; import java.awt.F ...
- java给图片加水印_java中怎么样将水印加在图片的上面或者下面
展开全部 方法e68a84e8a2ad62616964757a686964616f31333239303331一: import java.awt.*; import java.awt.image.* ...
- java实现图片加水印
package com.example.demo;import org.junit.jupiter.api.Test; import org.springframework.boot.test.con ...
- java 水印 位置_Java实现图片加水印且控制位置和透明度
Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...
- SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)
前言 最近某项目有个加水印的需求,JAVA实现给已上传的图片增加水印并输出的功能,图片A+水印B=合成带水印缓存图片C(就是不需要保存到硬盘,不占用空间),目前网上的解决方案挺多但是挺乱,于是趁机整理 ...
- java照片水印怎么做的_java图片加水印_百度经验
java给图片加水印 新建ImageUtil类 新建方法ImgYin,第一个参数是水印的字体,第二个参数是图片路径 新建mian方法 整体代码如下:import java.awt.*; import ...
- 给图片加水印的代码java_Java为图片加水印的代码
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.awt.AlphaComposite; import java.a ...
最新文章
- 【SRM 716 DIV 1 A】 ConstructLCS
- FreeRTOS内核实现03:临界段的保护
- 080 matplolib模块
- python pos函数_从0入门Python — 4. 函数
- signature=ed12edba242e439d545c9f98deb5e896,PROJECTION APPARATUS
- 百度网盘资源转迅雷下载正确打开方式!
- drozer 找不到java_自己安装drozer时出现各种问题的解决
- JPA中Specification方法
- win10配置免密登录linux(centos7)
- 仙之侠道2玖章青门任务怎么做_仙之侠道Ⅱ攻略_仙之侠道Ⅱ柒章 任务全攻略 新手必看_牛游戏网魔兽地图专区...
- Intel-8088/8086微处理器
- 树莓派/linux 功能配置(含网络)不定期更新
- 【ASE入门学习】ASE入门系列十二——Ramp采样(渐变采样)
- java将汉字转成拼音首字母大写字母_Java 将汉字转换为拼音并取首字母大写
- 对手在开拓,苹果在“堕落”,创新路上,苹果还能走多远
- 电感与磁珠(补充中)
- 医院AI智能随访电话机器人-北京联络加Loojion自主研发
- 七大品牌联手快手《超Nice大会》,探索综艺营销新通路
- English Learning - Day52 作业打卡 2023.2.6 周一
- (附源码)springboot学生社团信息管理 毕业设计 011238
热门文章
- 计算机组成原理知识点梳理
- 微信公众号CSS样式常见问题解析
- nacos is starting with cluster
- 上海电力学院计算机软件技术大作业,计算机硬件技术大作业报告2.doc
- 戴尔服务器显示器接口类型,戴尔推出UltraSharp U4021QW显示器 采用雷电3接口和5K×2K曲面屏...
- Android补间动画原理介绍
- 帝国cms html5 编辑器,帝国cms后台编辑器自动排版插件
- PRCS-1011 PRCS-1014
- 定制ERP和通用ERP如何选择?
- 基于Redis的分布式链家二手房房源数据爬虫系统 毕业设计