话不多说,直接贴代码

package org.platform.framework.commons.util;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;/*** 給图片添加图片* * @author liqiang**/
public class WaterMarkUtils {/*** @param args*/public static void main(String[] args) {String srcImgPath = "D:/Download/测试原图.jpg";String iconPath = "D:/Download/水印.png";String targerPath = "D:/Download/合并后.jpg";// 给图片添加图片水印,水印旋转-0WaterMarkUtils.markImageByIcon(iconPath, srcImgPath, targerPath, -0);java.util.Date dateTiemDate  = new java.util.Date();SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");String dateTime = format.format(dateTiemDate);System.out.println(dateTime);//添加文字水印//颜色对照表  0,0,0属于黑色       http://t.zoukankan.com/yubinfeng-p-4496006.html Color color=new Color(0,0,0);Color dateColor=new Color(211,211,211);  //给文字设置样式(字体,加粗,字号)     Font font = new Font("黑体", Font.BOLD, 40);       //第一行数据     (原图路径,输出的路径,水印的文字,颜色,字体,x位置,y位置,)waterMark(targerPath, targerPath,"水印 ",color,font,100,100);waterMark(targerPath, targerPath,dateTime,dateColor,font,1800,1000);}/*** 给图片添加水印* * @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);// 得到画笔对象// Graphics g= buffImg.getGraphics();Graphics2D g = buffImg.createGraphics();// 设置对线段的锯齿状边缘处理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);if (null != degree) {// 设置水印旋转g.rotate(Math.toRadians(degree), (double) buffImg.getWidth() /2, (double) buffImg.getHeight()/2 );}// 水印图象的路径 水印一般为gif或者png的,这样可设置透明度ImageIcon imgIcon = new ImageIcon(iconPath);/*  //可以设置水印的长宽imgIcon.setImage(imgIcon.getImage().getScaledInstance(600, 200, 1));*/// 得到Image对象。Image  img = imgIcon.getImage();float alpha = 0.5f; // 透明度g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));// 表示水印图片的位置g.drawImage(img, 150, 300, null);g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));g.dispose();os = new FileOutputStream(targerPath);// 生成图片ImageIO.write(buffImg, "JPG", os);System.out.println("图片完成添加Icon印章。。。。。。");} catch (Exception e) {e.printStackTrace();} finally {try {if (null != os)os.close();} catch (Exception e) {e.printStackTrace();}}}/*** @param filePath 原图片* @param outFile  输出图片* @param text     水印文字* @param color    颜色* @param font     字体* @param x        水印起始X坐标* @param y        水印起始Y坐标* @return 添加水印是否成功 true-成功 false-失败*/public static boolean waterMark(String filePath, String outFile,String text, Color color, Font font, int x, int y) {FileInputStream in = null;try {in = new FileInputStream(filePath);BufferedImage im = ImageIO.read(in);int width = im.getWidth();int height = im.getHeight();if (x > width || y > height) {return false;}Graphics g = im.getGraphics();g.setColor(color);g.setFont(font);g.drawString(text, x, y);g.dispose();ImageIO.write(im, "jpg", new File(outFile));} catch (IOException e) {return false;} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return true;}}

原图在这里

水印图:

最后的效果图

java给图片增加水印(图片水印,文字水印)相关推荐

  1. java图片加文字水印_JAVA实现图片的修改,添加文字水印效果

    JAVA实现图片的修改,添加文字水印效果,根据文字内容生成图片,下面是具体的代码,以及测试方法: 实现类: package JavaMoImage; import javax.p_w_picpathi ...

  2. java springboot使用itext 为PDF添加文字水印并铺满屏

    java springboot使用itextpdf 为PDF添加文字水印并铺满屏 代码如下 如果对你有帮助希望你能点个赞 结尾 这是我第一次发博客,也是第一次使用itext添加水印.遇到一些大大小小的 ...

  3. C# 批量加水印(含文字水印以及图片水印)

    [实例简介]C# 批量加水印,可以将文字或者图片设置为水印,且支持自定义水印位置(右下角.左下角.中间.右上角.左上角等等),且支持批量水印操作 文件:590m.com/f/25127180-4874 ...

  4. android 多行文字水印,android实现文字水印效果 支持多行水印

    特点 支持多行水印,支持自定义角度,支持自定义文字大小. 原理: 使用一个TextView 占据整个页面.在TextView基础上面打水印. 用法: 具体的view在 package cn.fulus ...

  5. ZBLOG-ASP2.2如何给图片增加ALT标签说明文字?

    2019独角兽企业重金招聘Python工程师标准>>> 一直以来,我们在建设网站的时候,都容易犯下一个大错误,那就是没有重视图片的文字说明,而大多数时候,技术方面并不能很好的识别图片 ...

  6. Java实现在图片上添加文字(水印)

    今天分享一个:通过Java代码,给图片添加文字. 比如下面这个图片,我们在左下角就添加了一个文字版的水印,那么这是如何实现的呢 ? 目录 [1]获取原图片对象 (1.1)读取本地图片 (1.2)读取网 ...

  7. Java实现添加文字水印、图片水印功能

    Java实现添加水印功能 添加水印 Java 2D API介绍 绘制文字水印 绘制图片水印 循环添加文字水印 添加水印 为图片添加水印的主要作用是保护图片版权,防止图片被未经授权的人使用或传播.为图片 ...

  8. java水印图片_JAVA实用案例之图片水印开发

    写在最前面 上周零零碎碎花了一周的时间研究水印的开发,现在终于写了个入门级的Demo,做下笔记同时分享出来供大家参考. Demo是在我上次写的 JAVA实用案例之文件导入导出(POI方式) 框架基础上 ...

  9. php加图片源码_PHP添加文字水印或图片水印的水印类完整源代码与使用示例

    PHP实现的给图片添加水印功能,可添加文字水印或图片水印,使用文字水印时需要提供字体文件,使用图片水印时需要提供水印图片,水印图片不能比要添加水印的图片大,请使用背景透明的水印图片. 该水印类支持自定 ...

  10. 生成高清缩略图; 添加图片、文字水印; 图片、文字水印透明

    之前写了一个公共的ImgHelper类,主要提供高清晰缩略图生成,由于在之前的实际操作过程中存在一些问题,最近有了点时间,于是重新拾起来再改进一下,顺便研究一下GDI+. 问题一:产品搜索列表展示,每 ...

最新文章

  1. Kostya Keygen#2分析
  2. Python踩坑指南(第三季)
  3. jenkins执行shell脚本,找不到环境变量
  4. idea spring 中没有标识_Spring 优雅的国际化实现
  5. beyond compare 3.10在异常关机后无法启动
  6. guibuilder 皮肤_和平精英返场皮肤投票排名介绍-返场皮肤哪个好
  7. Git的强制操作:强制推送[项目中千万不要用] 强制下拉
  8. @class、#import
  9. Ubuntu彻底删除MySQL重装MySQL
  10. python socketserver连接数量限制_python中socketserver的一个疑问
  11. python基础知识-python基础知识总结
  12. Java抽奖概率算法
  13. UGNX1953~1980版本怎么测量重量
  14. 计算机体系结构 第三章 CPU性能公式 CPI相关计算
  15. Windows7旗舰版SP1_32位2018.10(纯净版)
  16. 为 iOS 建立 Travis CI
  17. import torch -- AttributeError: module ‘typing‘ has no attribute ‘_SpecialForm‘
  18. Review | 科学禁食时代的来临
  19. MATLAB实战——方差分析
  20. 所需即所获:IDE = _plugins_ + vim

热门文章

  1. 【Android-混合开发】mPaas-多版本接入篇
  2. java优化 pdf_Java性能优化权威指南 PDF扫描[132MB]
  3. opencv-python版本问题
  4. 君正T31 ACC解码
  5. Modelsim的安装教程
  6. CNDS 签到在哪里
  7. java雪花算法实现
  8. 《Java就业培训教程》_张孝祥_书内源码_05
  9. GB18030字符编码格式和点阵字库
  10. 【Linux】系统移植篇一--linux系统移植导学