Java图片水印生成器代码 - 批量给自己的网站图片加水印

最近在做一款APP,App中的图片是自己一个个的画出来的,为了保证图片不被盗用和处理,所以就需要加上水印防盗。这跟CSDN一样。

注意事项:1. 我是在window7 + eclipse 下完成的

2. eclipse中项目的JRE System Library需要配置为JDK,要不然会提示缺少类库

3. 我之所以用图片水印而不是文字水印,是因为文字水印太麻烦且得不到想要的效果。

4. 用图片水印时,需要将文字改成图片的解决方案是通过网上搜索,搜索在线水印生成就可以了。我推荐这个网站:http://www.qt86.com/changyong.php

需求:将一个文件夹内的所有图片加上水印输出到另外一个文件夹。

设计:开发一个Java类,输入目录地址、输出目录地址、水印文件、水印旋转角度,将一个目录的所有图片加上水印后存储到另外一个目录。

实现:

一、根据文件内容生成水印文件

登录:http://www.qt86.com 网站,例如输入:软考大师 www.ruankaods.com看看格式,最好能用多排,并错开,这样在合并文件的时候,看到的效果是最好的。

注意,在点击生成前,请在【背景栏】选择透明背景,字色也应该选一个灰色的,如果一行内容太多就要选择小型字,要不生成的图片中水印文字会自动换行,导致水印文件会很难看。当然,具体的内容还是要自己根据需求调整了。

二、编写代码,将水印文件与源文件合并,生成带水印的文件。

下面的代码是批量将一个目录中的文件都加水印,如果你只是改一个文件也可以实现。

import java.awt.AlphaComposite;
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.OutputStream;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public   class  ImageWatermark {  /**   * 给图片添加水印* @param watermarkFilePath         水印图片路径   * @param srcImagePath        源图片路径   * @param targerImagePath           目标图片路径   * @param degree           水印图片旋转角度 */    public static void addImageWatermark(String watermarkFilePath, String srcImagePath, String targerImagePath, Integer degree) {     OutputStream os = null;     try { Image srcImage = ImageIO.read(new File(srcImagePath));   BufferedImage graphics = new BufferedImage(srcImage.getWidth(null), srcImage.getHeight(null), BufferedImage.TYPE_INT_RGB);   // 得到画布对象     Graphics2D g = graphics.createGraphics();     // 设置对线段的锯齿状边缘处理     g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);     g.drawImage(srcImage.getScaledInstance(srcImage.getWidth(null), srcImage.getHeight(null), Image.SCALE_SMOOTH), 0, 0, null);     if (null != degree) {     // 设置水印旋转角度及坐标  g.rotate(Math.toRadians(degree),  (double) graphics.getWidth() / 2, (double) graphics.getHeight() / 2);     }     // 水印图象的路径 (如果需要设置透明度需要gif或者png格式的图片  )ImageIcon imgIcon = new ImageIcon(watermarkFilePath);     // 得到Image对象。     Image image = imgIcon.getImage();    // 透明度     float alpha = 0.25f;g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));     // 表示水印图片的位置     g.drawImage(image, 20, 30, null);     g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));     g.dispose();     os = new FileOutputStream(targerImagePath);     // 生成图片     (可设置 jpg或者png格式)ImageIO.write(graphics, "png", os);     } catch (Exception e) {     e.printStackTrace();     } finally {     try {     if (os != null) {os.close();     }} catch (Exception e) {     e.printStackTrace();     }     }     }     public static void main(String[] args) {File f = new File("D:\\图片\\全部图片");File[] p = f.listFiles();
//      for(File file : p){
//          System.out.println(file.getName());
//      }for (File photo : p) {if(!photo.isDirectory()){ImageWatermark.addImageWatermark("C:/water.png",photo.getPath(),"D:\\图片\\全部图片\\target\\" + photo.getName() , -15);}}System.exit(0);}
}

三、效果图

大家可以看到,软考大师 ruankaods.com的图片水印正式加入到刚才的图片中了。

Java图片水印生成器代码 - 批量给自己的网站图片加水印相关推荐

  1. php网页中不能上传图片,为什么我的PHP图片上传代码可以实现插入数据库但图片不能插入文件夹中?...

    为什么我的PHP图片上传代码可以实现插入数据库但图片不能插入文件夹中? 关注:167  答案:4  mip版 解决时间 2021-01-19 00:58 提问者慢慢学会遗忘 2021-01-18 00 ...

  2. 如何用手机打开dcm格式图片_如何防止自己的图片被盗用?这 4 招教你优雅加水印...

    出门旅游一趟,好不容易拍到一组相当满意的图片.想要把这些图片上传到社交平台,如何才能让大家一看就知道这是自己拍的作品,同时又防止盗图呢? 答案是在图片上加上自己的水印,这次有用功将和大家分享下,如何快 ...

  3. linux批量修改压缩图片大小,linux shell批量压缩某个目录下图片大小

    linux shell批量压缩某个目录下图片大小 #!/bin/sh read -p "Input Path:" SPATH maxsize=$((1024*200)) FILEL ...

  4. 图片加水印怎么弄?分享三个简单的加水印方法给你

    辛苦制作的图片刚发上网就被别人盗用了,谁懂啊,真的很膈应!在经历了数次这样的情形之后,我终于学聪明了,每次做完图都不忘打上水印. 今天就给大家分享三个简单的方法,手把手教你图片加水印怎么弄! 一.使用 ...

  5. 上传图片自动加水印html,帝国cms用户前台投稿上传图片自动加水印的实现方法...

    帝国7.0 前台编辑器增加 上传图片加水印功能! 我的是最新版 ecms 7.0 utf-8 : 修改  e/class/qinfofun.php 的第1225行 复制代码代码如下: if($type ...

  6. php制作水印案例,PHP实例程序:实现给上传图片加水印图案的做法总结

    c语言编程以下为引用的内容: PHP_SELF']?>" method="post" enctype="multipart/form-data" ...

  7. 运维实践-使用WebP Server Go无缝转换图片为Google的webp格式让你网站访问加载速度飞起来...

    关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 本章目录: 0x00 快速入门 WebP 介绍 Webp-Server 介绍 0x01 安装实 ...

  8. 视频怎么加水印?带你了解下怎么给视频加水印

    现在许多人会通过创作视频来获取关注和收益,他们为了避免视频被盗用,都会在自己的视频上面添加水印,再进行发布.那你们知道怎么给视频加水印吗?下面我将分享几种实用的方法给大家,还不知道的小伙伴快跟我一起往 ...

  9. php批量采集电视剧,如何通过PHP多线程批量采集下载远程网站图片代码实例

    /** * curl 多线程 * @author http://www.lai18.com * @param array $array 并行网址 * @param int $timeout 超时时间 ...

最新文章

  1. 搭建通用性多用户后台-思路
  2. Windows中非常实用的命令
  3. 今天学习啦所谓的高级语言啦
  4. 计算机广告制作未来发展还行吗,计算机多媒体设计专业和广告设计制作那个好...
  5. AE插件Stardust for mac(最强粒子特效)
  6. ts watch路由 参数变化_TypeScript基础(六):TS 在 Vue 中的用法,data,生命周期,methods,computed,props,watch,$emit...
  7. Django复习:视图和模版
  8. 一个 8 岁的“前端老人”
  9. idea中springBoot项目修改html之类的文件后服务不自动更新
  10. 计算机考研804是什么意思,北邮通信考研专业课801和804的选择
  11. 概率论基础——概率论公理
  12. 【QBKbupt】洛谷P2525Uim的情人节礼物·其之壱
  13. IDEA画Use Case(用例图)
  14. 服务器IIS6/IIS7、Nginx、Apache屏蔽垃圾爬虫UA禁止垃圾爬虫,屏蔽指定UA
  15. python爬取代理IP并进行有效的IP测试
  16. 火车时刻表又更新了!
  17. 如何使用IOS自动化测试工具UIAutomation
  18. 卫士处刑者冠军css3边,流放之路职业开荒路 决斗者冠军双持刀刃乱舞
  19. 企业获客的五种方式解读
  20. 谷歌携Chromebox会议套件进入视频会议市场

热门文章

  1. 月亮是外星人造的?!
  2. 从12S Ultra影像革新看小米手机的高端进阶
  3. 设备间同步的电子书阅读器--查找未果
  4. python忽略大小写_Python字符串忽略大小写实现搜索和替换
  5. 【婚礼司仪】婚礼主持稿
  6. python 工程进度计划_Python3教学进度表
  7. 纯前端vue+bootstrap实现图书管理系统的添加、删除功能
  8. 天天爱消除辅助-按键精灵手机安卓版-天天爱消除辅助Android源码-按键精灵脚本
  9. 第十代酷睿 I7 IPSEC加密转发性能测试报告
  10. 加拿大计算机科学专业高中选课,【干货】超全加拿大高中留学的选课攻略!