使用thumbnailator给图片加水印
引入方式:Maven
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
这个是谷歌的一个开源项目
https://github.com/coobird/thumbnailator
需要注意,自从2014年发布了0.4.8版本以后,不再更新
/**
* 添加水印后,输出文件到path
* @param is 原图的输入流
* @param markImg 水印图片
* @param path 输出路径
* @throws IOException
*/
public static void markPicToFile(InputStream is,File markImg,String path) throws IOException {
BufferedImage image = ImageIO.read(is);
BufferedImage markImage = ImageIO.read(markImg);
//原图的宽高
int imgWidth = image.getWidth(null);
int imgHeight = image.getHeight(null);
//水印图片的宽高
int markWidth = markImage.getWidth(null);
int markHeight = markImage.getHeight(null); //计算输出水印图片的位置x和y轴
int mark_x = imgWidth - imgWidth / 9;
int mark_y = imgWidth / 9-imgWidth / 10;
//计算输出水印图片的大小
int mark_width = imgWidth / 10;
int mark_height = (imgWidth * markHeight) / (10 * markWidth); //将水印图片压缩成输出的大小
markImage = Thumbnails.of(markImage).size(mark_width,mark_height).asBufferedImage(); //watermark(位置,水印图,透明度0.5f=50%透明度)
//outputQuality(控制图片的质量,1f=100%高质量)
Thumbnails.of(image)
.size(imgWidth, imgHeight)
.watermark(new Coordinate(mark_x,mark_y), markImage, 1f)
.outputQuality(1f).toFile(path);
}
水印图片的大小,我是按原图的比例进行压缩,是原图的十分之一,水印位置是右上角
使用thumbnailator给图片加水印的更多相关文章
- 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化
<?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...
- thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印
今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
[强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...
- php 分享两种给图片加水印的方法
本文章向码农们介绍 php 给图片加水印的两种方法,感兴趣的码农可以参考一下本文章的源代码. 方法一:PHP最简单的加水印方法 <?php // http://www.manongjc.com ...
- Java图片处理(二)图片加水印
图片加水印,是通过图片重叠绘制实现的.实现代码如下: public static void press(String pressImg, String pressText, String target ...
- PHP给图片加水印
<?php /** *图片加水印 *@param $srcImg 原图 *@param $waterImg 水印图片 *@param $savepath 保存路径 *@param $savena ...
- 如何用node.js批量给图片加水印
上一篇我们讲了如何用node.js给图片加水印,但是只是给某一张图片加,并没有涉及到批量处理.这一篇,我们学习如果批量进行图片加水印处理. 一.准备工作: 首先,你要阅读完这篇文章:http://ww ...
- 使用 ImageEnView 给图片加水印,及建缩略图
摘要: 使用 ImageEnView 给图片加水印,及建缩略图 {Power by hzqghost@21cn.com}unit CutWater; interface uses Math,imag ...
- php对图片加水印--将图片先缩小,再在上面加水印
方法: /** * 图片加水印(适用于png/jpg/gif格式) * * @author flynetcn * * @param $srcImg 原图片 * @param $water ...
随机推荐
- Python yield用法浅析(stackoverflow)
这是stackoverflow上一个关于python中yield用法的帖子,这里翻译自投票最高的一个回答,原文链接 here 问题 Python中yield关键字的用途是什么?它有什么作用?例如,我试 ...
- vue图片不存在时加载默认图片
在文件中的img那里添加:οnerrοr="errorImg01",然后设置errorImg01的路径如果直接写成 errorImg01: ('../../assets/image ...
- [七月挑选]frp初使用
title: frp初使用 先starfatedier/frp,再开工. 什么是frp? frp is a fast reverse proxy to help you expose a local ...
- 10年前文章_fedora10root登录
fedora10系统root用户登录以及普通用户使用sudo命令1.问题:fedora10默认不能够直接用root用户登录解决方法:我们可以先以普通用户登录$su#vi /etc/pam.d/gdm删 ...
- ping/curl
ping查看网络连通情况 curl查看接口可用情况
- springSecurity安全框架
一.是什么 是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,对访问权限进行控制 二.作用 1.认证 用户名和密码认证,核对是否正确 2.授权 若正确,给予登录用户对应的访问权限 ...
- [洛谷P4436] HNOI/AHOI2018 游戏
问题描述 一次小G和小H在玩寻宝游戏,有n个房间排成一列,编号为1,2,...,n,相邻的房间之间都有一道门.其中一部分门上锁(因此需要有对应的钥匙才能开门),其余的门都能直接打开.现在小G告诉了小H ...
- ES6数据结构Set、Map
一.Set数据结构 Set是无序的不可重复的多个value的集合体,Set结构是类似于数组结构,但是Set中的值都不能重复 常用的属性和方法 size:返回set实例的成员总数 add():添加某个值 ...
- java伪代码读后感
愚公,在这位名家身上,浓缩了项目的组织者,团队经理,编程人员,技术分析师等众多角色的优秀素质.原始需求的产生“惩山北之塞,出入之迁”项目沟通的基本方式“聚室而谋之”项目的目标“毕力平险,指通豫南,达于 ...
- javascript 通用定义
通用约定 注释 原则 As short as possible(如无必要,勿增注释):尽量提高代码本身的清晰性.可读性. As long as necessary(如有必要,尽量详尽):合理的注释.空 ...