给图片加水印的主要步骤包括:

1、获取原图的画笔

2、设置水印信息、水印位置

3、在原图上画出水印

工具代码

/**

* 在图片右下角添加白色文字水印

* @param is

* @param os

* @param text

* @throws IOException

*/

public static void makeWatermark(InputStream is, OutputStream os, String text, String format) throws IOException {

BufferedImage image = ImageIO.read(is);

if (image != null) {

int width = image.getWidth();

int height = image.getHeight();

//计算字体大小

int fontSize = (int)(width * height * 0.000008 + 13);

Font font = new Font("宋体", Font.PLAIN, fontSize);

Graphics2D g = image.createGraphics();

g.setFont(font);

g.setColor(Color.white); //水印颜色-白色

透明度

//float alpha = 0.9f;

//g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, alpha));

int x = width - getWatermarkLength(text, g) - 10;

x = x < 0 ? 0 : x;

int y = height - 10;

y = y < 0 ? 0 : y;

//对线段的锯齿状边缘处理

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,RenderingHints.VALUE_INTERPOLATION_BILINEAR);

g.drawString(text, x, y);

g.dispose();

ImageIO.write(image, format, os);

}

}

/**

* 获取水印文字总长度

* @param text 水印的文字

* @param g

* @return 水印文字总长度

*/

private static int getWatermarkLength(String text, Graphics g) {

return g.getFontMetrics(g.getFont()).charsWidth(

text.toCharArray(), 0, text.length());

}

测试代码

/**

* 测试制作水印

* @throws IOException

* @throws FileNotFoundException

*/

@Test

public void testMakeWatermark() throws FileNotFoundException, IOException {

String imageName = "java_coffee.jpg";

String srcPath = IMAGE_PATH + imageName;

imageName = "java_coffee_wm.jpg";

String detsPath = IMAGE_PATH + imageName;

ImageUtil.makeWatermark(new FileInputStream(srcPath),

new FileOutputStream(detsPath), "测试水印", "jpg");

}

效果图

标签:java,String,int,text,image,水印,param,加水

来源: https://blog.csdn.net/meism5/article/details/88861835

java加水印 盖章_java加水印相关推荐

  1. java 水印处理_java 图片水印处理

    //main方法 Font font = new Font("微软雅黑", Font.PLAIN, 90); //水印字体 String srcImgPath = "C: ...

  2. java加密解密代码_java加解密文件公用方法整合(多看一本书,少写三行代码)

    最近接到任务(文件的安全性)需要在文件上传到服务器上时将文件加密保存, 用户下载时将文件解密后返回给用户.翻了下方法最后决定用java中的Cipher类来完成(里面的实现方式挺全的). 上手实现.po ...

  3. Java md5加解密汉字_Java加解密_MD5

    在Java中使用MD5摘要还是很方便的,直接上代码. 1 packagecom.cxc.nothing;2 3 importjava.nio.charset.Charset;4 importjava. ...

  4. java sha加解密算法_java加解密

    SHA256 ------------------java自带实现方式--------------- package com.xiayu.demo; import java.io.Unsupporte ...

  5. java怎么给文档加水印_Java 如何给Word文档添加多行文字水印

    前言 我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印.关于文本水印,之前那篇教程里主要指的是单行字体的水印,而在操作Word文档时,有时也会碰到需要添加多行文 ...

  6. java文件下载并添加水印_Java下载文件加文字水印(Excel、PDF、图片)

    一.导出Excel加文字水印 方法:通过实现准备一个带有水印的Excel文件,然后将数据覆盖该文件然后输出. 比如我准备了如下的一个带水印的模板,我起名为water.xlsx(网上有如何给Excel加 ...

  7. 在Java生成的html页面加水印,Java在Excel中添加水印的实现(单一水印、平铺水印)...

    在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果.本文通过Java程序代码介绍具体实现方法.可添加单一水印效果,即水印是以单个文本字样来呈现:也可添加多个平铺水印效果,即 ...

  8. Java实现给PDF文件加文字水印和图片水印(可以自定义水印格式)

    使用Java代码给PDF文件加文字水印 直接上代码运行即可 依赖 有的可能用不上我直接复制全部了 <dependencies><!--word文件转PDF以及水印-->< ...

  9. java ueditor 图片上传加水印_Ueditor编辑器上传图片加水印【亲测可用】-帝国CMS整合...

    Ueditor编辑器上传图片加水印 百度一下,有很多,但是方法都是一样的,写的不清不楚的.对于代码不是很了解的我们,却是头大.我整理了一下,下载下面的压缩包,解压缩之后,直接上传到  ueditor ...

最新文章

  1. 智源论坛 | 人工智能的数理基础(系列报告)
  2. DLL load failed: 页面文件太小,无法完成操作
  3. CSS基本选择器(元素选择器、类选择器、id选择器)
  4. JZOJ 3129. 【WinterCamp 2013】数三角形
  5. 使用Laravel框架发送邮件
  6. 2.3 C#中的数组
  7. 使用GoldenGate进行平台迁移和数据库升级(9i-11g)步骤描述
  8. #if DEBUG vs. Conditional(“DEBUG”)
  9. 阿里云OSS linux使用备忘录
  10. linux中查看相关日志记录,linux重启查看日志及历史记录 查询原因
  11. Linux 启动mysql提示表不存在
  12. 全奖博士招生,荷兰根特大学 ​IDLab 实验室,手语手势识别方向
  13. python 函数编程
  14. Spark Yarn Client模式spark.driver.host导致 Cannot assign requested address: Service ‘sparkDriver‘ failed
  15. 前端开发~uni-app ·[项目-仿糗事百科] 学习笔记 ·000【前言】
  16. 超级计算机运行吃鸡,决赛圈的时候,如果两个人同时被手雷炸死该怎么办呢?...
  17. 数据结构上机实践第八周项目5 - 计数的模式匹配
  18. php多级审核,BOS单据多级审核需在单据头上列示多个审核人员的处理方法
  19. android打印动画,Android 中的转场动画及兼容处理
  20. 第一台数控机床专用计算机采用什么元件,数控技术试题库(含答案)

热门文章

  1. 还在随大流用PostMan?快来试试Apipost吧
  2. MongoDB 中文显示乱码的 真正原因和解决方案,真的是cmd问题吗?
  3. 中国量身定制男装成衣品牌发展趋势解析-全球纺织网资讯中心
  4. (附源码)ssm城市旅游景点信息交流平台的设计与实现 毕业设计290915
  5. 电磁学及其计算机辅助教学,大学物理教材改革的典范—陈义成先生《电磁学及其计算机辅助教学》评介...
  6. android平板手,诺基亚7.9寸Android平板真机上手 或售1499元
  7. RFC 请求评议 潇湘博客
  8. kali linux网络扫描~网络扫描基础技术
  9. MATLAB中plot()函数的用法
  10. Android绘制小圆点