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给图片加水印相关推荐

  1. Java为图片加水印

    Java为图片加水印工具类 一.简介 使用Java在图片上加上水印,可以添加文字.图片 编写一个工具类的代码优化和整理 使用建造者模式提高工具类的可配置性 二.效果图 三.基本参数 // ++++++ ...

  2. JAVA实现图片加水印及Base64图片字符串加水印

    JAVA实现图片加水印及Base64图片字符串加水印 可将根据不同需求选择场景一,场景二来实现家水印操作,个人感觉比我上一遍文章<base64字符串加水印 >实在 场景一: 涉及上送过来的 ...

  3. java给图片加水印_java如何给图片加水印

    最近研究一下java如何给上传的图片加上水印,专门为这个功能写了一个方法类,然后再进行调用,代码如下:package WaterMark; import java.awt.AlphaComposite ...

  4. java给图片加水印_Java 为图片添加水印(图片水印,文字水印)

    Java 为图片添加水印(图片水印,文字水印) 2014-07-28·WeaponX 5267 次浏览 ```java import java.awt.Color; import java.awt.F ...

  5. java给图片加水印_java中怎么样将水印加在图片的上面或者下面

    展开全部 方法e68a84e8a2ad62616964757a686964616f31333239303331一: import java.awt.*; import java.awt.image.* ...

  6. java实现图片加水印

    package com.example.demo;import org.junit.jupiter.api.Test; import org.springframework.boot.test.con ...

  7. java 水印 位置_Java实现图片加水印且控制位置和透明度

    Java实现图片加水印且控制位置和透明度 昨天要做一个给图片加水印的功能,不想使用一些插件,就在网上转了一会儿,经过改装成了我需要的功能,代码如下: package org.guhao; import ...

  8. SpingBoot/JAVA实现给图片加水印功能(通过thumbnailator库)

    前言 最近某项目有个加水印的需求,JAVA实现给已上传的图片增加水印并输出的功能,图片A+水印B=合成带水印缓存图片C(就是不需要保存到硬盘,不占用空间),目前网上的解决方案挺多但是挺乱,于是趁机整理 ...

  9. java照片水印怎么做的_java图片加水印_百度经验

    java给图片加水印 新建ImageUtil类 新建方法ImgYin,第一个参数是水印的字体,第二个参数是图片路径 新建mian方法 整体代码如下:import java.awt.*; import ...

  10. 给图片加水印的代码java_Java为图片加水印的代码

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. import java.awt.AlphaComposite; import java.a ...

最新文章

  1. 【SRM 716 DIV 1 A】 ConstructLCS
  2. FreeRTOS内核实现03:临界段的保护
  3. 080 matplolib模块
  4. python pos函数_从0入门Python — 4. 函数
  5. signature=ed12edba242e439d545c9f98deb5e896,PROJECTION APPARATUS
  6. 百度网盘资源转迅雷下载正确打开方式!
  7. drozer 找不到java_自己安装drozer时出现各种问题的解决
  8. JPA中Specification方法
  9. win10配置免密登录linux(centos7)
  10. 仙之侠道2玖章青门任务怎么做_仙之侠道Ⅱ攻略_仙之侠道Ⅱ柒章 任务全攻略 新手必看_牛游戏网魔兽地图专区...
  11. Intel-8088/8086微处理器
  12. 树莓派/linux 功能配置(含网络)不定期更新
  13. 【ASE入门学习】ASE入门系列十二——Ramp采样(渐变采样)
  14. java将汉字转成拼音首字母大写字母_Java 将汉字转换为拼音并取首字母大写
  15. 对手在开拓,苹果在“堕落”,创新路上,苹果还能走多远
  16. 电感与磁珠(补充中)
  17. 医院AI智能随访电话机器人-北京联络加Loojion自主研发
  18. 七大品牌联手快手《超Nice大会》,探索综艺营销新通路
  19. English Learning - Day52 作业打卡 2023.2.6 周一
  20. (附源码)springboot学生社团信息管理 毕业设计 011238

热门文章

  1. 计算机组成原理知识点梳理
  2. 微信公众号CSS样式常见问题解析
  3. nacos is starting with cluster
  4. 上海电力学院计算机软件技术大作业,计算机硬件技术大作业报告2.doc
  5. 戴尔服务器显示器接口类型,戴尔推出UltraSharp U4021QW显示器 采用雷电3接口和5K×2K曲面屏...
  6. Android补间动画原理介绍
  7. 帝国cms html5 编辑器,帝国cms后台编辑器自动排版插件
  8. PRCS-1011 PRCS-1014
  9. 定制ERP和通用ERP如何选择?
  10. 基于Redis的分布式链家二手房房源数据爬虫系统 毕业设计