Java实现图片水印

参考:Java实现图片水印

代码参考:https://gitee.com/Yenn-2017_admin/JAVATuPianShuiYin

1、JAVA图片水印实现思路

2、项目案例:

框架---》实现方式---》结果演示

3、包含:

图片添加单个文字水印

图片添加单个图片水印

图片添加多个文字水印

图片添加多个图片水印

多图片批量添加水印

4、重点

了解Java图片水印实现思路

文字水印和图片水印的实现

多图片批量添加水印

图片水印实现思路

  1. 创建缓存图片对象
  2. 创建JAVA绘图工具对象
  3. 使用绘图工具对象,将原图绘制到缓存图片对象
  4. 使用绘图工具,将水印(文字/图片)绘制到缓存图片对象
  5. 创建图像编码工具类
  6. 使用图片编码工具类,输出缓存图像到模板图片文件

JAVA图片水印使用工具类

名称工具
缓存图片对象BufferedImage
绘图工具对象Graphics2D
图片编码工具类JPEGImageEncoder

项目案例

基于Strtus2框架的Java Web应用程序,

允许一次上传多个图片,

应用默认为上传图片添加水印,

并将原图与添加水印图片对比展示。

图片添加单个文字水印

1、搭建框架

使用SpringBoot

2、配置action&编写JSP页面

controller:WaterMarkController.java

index.html

watermark.html

3、java实现图片上传

UploadService.java

4、编写水印接口

5、水印编写准备,将原图绘制到缓存图片中

6、将水印绘制到缓存图片中。

7、水印图片生成

图片添加单个图片水印

SpringBoot

静态文件路径:

File logo = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "static/image/"+LOGO);

2018-10-22 09:56:51.589  INFO 4772 --- [nio-8083-exec-6] c.e.watermark.service.ImageMarkService   : logo=...\watermark\target\classes\static\image\logo.png,is_exists=true

添加多个文字水印

文字旋转一个弧度。

x,y循环。

批量添加水印

使用for循环,挨个对图片进行处理。

注意点:

//消除画图锯齿
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

//消除文字锯齿           
graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
// 描边的文字。    

FontRenderContext frc = graphics2D.getFontRenderContext();
TextLayout tl = new TextLayout("送同款手撕面包", new Font(FONT_NAME, Font.BOLD,12), frc);
Shape sha = tl.getOutline(AffineTransform.getTranslateInstance((WIDTH-widthA1)/2,height-120+12/2));
graphics2D.setStroke(new BasicStroke(3.0f));
graphics2D.setColor(new Color(0xfc3576));
graphics2D.draw(sha);
graphics2D.setColor(Color.WHITE);
graphics2D.fill(sha);

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值