用Java实现给图片添加文字水印
程序背景
在网络中的很多地方都有水印的存在,比如微信公众号上面的图片,微博,以及这个CSDN博客上面的图片……所以突发奇想,看看自己能否写一个可以给图片添加水印的工具类。
程序代码
package image;import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;import javax.imageio.ImageIO;/*** @author 白芷* @Date 2017/03/12* @use 利用Java代码给图片加水印*/
public class WaterMarkUtils {/*** @param srcImgPath 源图片路径* @param tarImgPath 保存的图片路径* @param waterMarkContent 水印内容* @param markContentColor 水印颜色* @param font 水印字体*/public void addWaterMark(String srcImgPath, String tarImgPath, String waterMarkContent,Color markContentColor,Font font) {try {// 读取原图片信息File srcImgFile = new File(srcImgPath);//得到文件Image srcImg = ImageIO.read(srcImgFile);//文件转化为图片int srcImgWidth = srcImg.getWidth(null);//获取图片的宽int srcImgHeight = srcImg.getHeight(null);//获取图片的高// 加水印BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g = bufImg.createGraphics();g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);g.setColor(markContentColor); //根据图片的背景设置水印颜色g.setFont(font); //设置字体//设置水印的坐标int x = srcImgWidth - 2*getWatermarkLength(waterMarkContent, g); int y = srcImgHeight - 2*getWatermarkLength(waterMarkContent, g); g.drawString(waterMarkContent, x, y); //画出水印g.dispose(); // 输出图片 FileOutputStream outImgStream = new FileOutputStream(tarImgPath); ImageIO.write(bufImg, "jpg", outImgStream);System.out.println("添加水印完成"); outImgStream.flush(); outImgStream.close(); } catch (Exception e) {// TODO: handle exception}}public int getWatermarkLength(String waterMarkContent, Graphics2D g) { return g.getFontMetrics(g.getFont()).charsWidth(waterMarkContent.toCharArray(), 0, waterMarkContent.length()); } public static void main(String[] args) {Font font = new Font("微软雅黑", Font.PLAIN, 35); //水印字体String srcImgPath="H:/安静时写写/写写博客/Java实现给图片添加水印/s.jpg"; //源图片地址String tarImgPath="H:/安静时写写/写写博客/Java实现给图片添加水印/t.jpg"; //待存储的地址String waterMarkContent="图片来源:http://blog.csdn.net/zjq_1314520"; //水印内容Color color=new Color(255,255,255,128); //水印图片色彩以及透明度new WaterMarkUtils().addWaterMark(srcImgPath, tarImgPath, color, waterMarkContent,font);}
}
最后效果
用Java实现给图片添加文字水印相关推荐
- Java分享--给图片添加文字水印(文字可旋转)
这篇文章主要介绍了Java实现给图片添加文字水印,文字水印的方法,涉及java针对图片的读取.水印添加设置等相关操作技巧,需要的朋友可以参考下 . 很多时候项目中的图片需要一定的版权,就是人家拿出去用 ...
- JAVA 给图片添加文字水印
水印操作有很多,例如:给图片添加文字.图片水印,给pdf文件添加水印,给文件加盖公章,这类需求还是时常会遇到的,今天就简单记录一下给图片添加文字水印的demo,仅供大家参考,后续会写别的情况的添加水印 ...
- Java给图片添加文字水印
闲着没事,研究了下图片水印的事儿,图片水印虽然恶心,而且大大的影响了图片的美观,试想一下,一张美女的性感写真照,下方来了个大大的水印"XXXX所有",看着那猥琐的文字水印,是不是很 ...
- android水印控件,Android图片添加文字水印并保存水印文字图片到指定文件
Android图片添加文字水印并保存水印文字图片到指定文件package zhangphil.test;import android.graphics.Bitmap;import android.gr ...
- springboot——图片添加文字水印
springBoot 给图片添加文字水印 项目要求给每个考生制作证书.这里我们有每个公司需要的背景图片模板,而我现在要做的就是把每个考生的考试信息和个人信息,以水印的形式添加到图片的指定位置.(现在这 ...
- Springboot中给图片添加文字水印
Springboot中给图片添加文字水印 工作中遇到给图片添加文字水印的需求,记录下来方便之后查阅 需求内容: 给一张图片添加指定文字水印,使一张图片上有多个水印内容,并且设定一个水印开关,可指定是否 ...
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
想要给图片添加文字水印或者注释,我们需要实现在UIImage上写字的功能. 1,效果图如下: (在图片左上角和右下角都添加了文字.) 2,为方便使用,我们通过扩展UIImage类来实现添加水印功能 ( ...
- php生成背景并加字,PHP给图片添加文字水印实例
PHP给图片添加文字水印实例,支持中文文字水印,是否覆盖原图,自定义设置水印背景色.文字颜色.字体等. 水印类water.class.php var $Path = "./"; / ...
- 二、VB.NET实现给图片添加文字水印
VB.NET实现给图片添加文字水印 通过vb.net给选定的图片添加文字水印,添加的文字从文本文档中获取,可以一次给相同的图片添加不同的文字水印,并以添加的文字命名图片: Imports System ...
最新文章
- C语言中positive用法,sprintf - C语言库函数
- vivo手机解锁工具_屏幕指纹优势凸显,vivo持续研发致力打造全屏指纹解锁
- kernel 3.10内核源码分析--内核栈及堆栈切换
- 阴雨连绵潮湿加剧 车辆防潮提升保值
- centos部署时间服务器
- Delphi窗口属性
- 2005服务器文件夹网页设设置,设置VSS2005使支持通过Internet访问
- jmeter性能测试实战_Jmeter接口测试实战篇:10分钟学会Jmeter的用法
- Go语言grpc proto生成pb文件
- 都说IT行业有前景,请问凭什么?
- 十大经典系统架构设计面试题
- macbook新建html文件,New File Creation: 给 Mac 加上“新建文件菜单”
- 域名注册条件有哪些?需要提交哪些材料?
- 2021年中国债券行业发展趋势分析:发行规模、交易量增长,未来发展潜力较大[图]
- C语言杨辉三角和“日本某地谋杀案”习题讲解
- 岁月的剪影【七月My way】
- pde与波长 sipm 关系_SiPM应用于LiDAR:为何要先解决延时脉冲,而不是先提升PDE?...
- 基于Java技术的大型网站架构设计方案
- 计算机网络工程方向,计算机网络专业发展方向
- DSP_基于TMS320F28335和CCS7.2的编程入门
热门文章
- 人工智能产业链,是时候梳理一下了!
- Python + Django 入门级开发手顺
- 移动硬盘损坏如何恢复数据
- 安卓实现饿了么点餐界面效果(京东类别左右列表联动)
- 浪潮财务软件 系统表预检查: 对象 ID X。无法使用闩锁类型 SH 读取并闩锁页 。由于不可修复的错误,CHECK 语句已终止。
- 如何使用注册表在Win10中调整屏幕亮度
- 低成本快速开发 LoRa 终端:从 1 到 10000
- Delphi10.4使用FireDAC数据访问组件开发数据库软件学习开发教程(1)
- 【JavaSE】Java9Java10Java11新特性(687~717)
- Android 音视频编解码 MediaCodec