java图片处理(加水印、生成缩略图)等之Thumbnailator库
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。
比任何现有自己基于jdk库写要稳定、高质量的多,不知道为啥还有那么多人非要自己重新造轮子,关键还造不过人家。
http://code.google.com/p/thumbnailator/
版本:thumbnailator-0.4.2.jar
<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
1、指定大小进行缩放
- //size(宽度, 高度)
- /*
- * 若图片横比200小,高比300小,不变
- * 若图片横比200小,高比300大,高缩小到300,图片比例不变
- * 若图片横比200大,高比300小,横缩小到200,图片比例不变
- * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
- */
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(200, 300)
- .toFile("c:/a380_200x300.jpg");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(2560, 2048)
- .toFile("c:/a380_2560x2048.jpg");
2、按照比例进行缩放
- //scale(比例)
- Thumbnails.of("images/a380_1280x1024.jpg")
- .scale(0.25f)
- .toFile("c:/a380_25%.jpg");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .scale(1.10f)
- .toFile("c:/a380_110%.jpg");
3、不按照比例,指定大小进行缩放
- //keepAspectRatio(false) 默认是按照比例缩放的
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(200, 200)
- .keepAspectRatio(false)
- .toFile("c:/a380_200x200.jpg");
4、旋转
- //rotate(角度),正数:顺时针 负数:逆时针
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .rotate(90)
- .toFile("c:/a380_rotate+90.jpg");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .rotate(-90)
- .toFile("c:/a380_rotate-90.jpg");
5、水印
- //watermark(位置,水印图,透明度)
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("images/watermark.png")), 0.5f)
- .outputQuality(0.8f)
- .toFile("c:/a380_watermark_bottom_right.jpg");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .watermark(Positions.CENTER, ImageIO.read(new File("images/watermark.png")), 0.5f)
- .outputQuality(0.8f)
- .toFile("c:/a380_watermark_center.jpg");
6、裁剪
- //sourceRegion()
- //图片中心400*400的区域
- Thumbnails.of("images/a380_1280x1024.jpg")
- .sourceRegion(Positions.CENTER, 400,400)
- .size(200, 200)
- .keepAspectRatio(false)
- .toFile("c:/a380_region_center.jpg");
- //图片右下400*400的区域
- Thumbnails.of("images/a380_1280x1024.jpg")
- .sourceRegion(Positions.BOTTOM_RIGHT, 400,400)
- .size(200, 200)
- .keepAspectRatio(false)
- .toFile("c:/a380_region_bootom_right.jpg");
- //指定坐标
- Thumbnails.of("images/a380_1280x1024.jpg")
- .sourceRegion(600, 500, 400, 400)
- .size(200, 200)
- .keepAspectRatio(false)
- .toFile("c:/a380_region_coord.jpg");
7、转化图像格式
- //outputFormat(图像格式)
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .outputFormat("png")
- .toFile("c:/a380_1280x1024.png");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .outputFormat("gif")
- .toFile("c:/a380_1280x1024.gif");
8、输出到OutputStream
- //toOutputStream(流对象)
- OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .toOutputStream(os);
9、输出到BufferedImage
- //asBufferedImage() 返回BufferedImage
- BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .asBufferedImage();
- ImageIO.write(thumbnail, "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));
java图片处理(加水印、生成缩略图)等之Thumbnailator库的更多相关文章
- ASP组件AspJpeg(加水印)生成缩略图等使用方法
ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...
- yii php 图片上传与生成缩略图
今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图 ($pic_action_url = $this->createAbsoluteUrl('h ...
- 织梦/dedecms 当文章转载时不需要设置图片水印的设置,取消’图片是否加水印‘的复选框,并且修改如下文件即可生效
当想添加水印是选中“图片是否加水印”复选框即可. 找到include/helpers/image.helper.php这个文件,在里面找到中的if( isset($GLOBALS['needwater ...
- php 图片操作类,支持生成缩略图,添加水印,上传缩略图
<?php class Image { //类开始 public $originimage = ""; //源图片文件地址 public $image ...
- java 实现 PDF 加水印功能
使用java代码实现给PDF加水印的功能 首先导入所需要的依赖 <dependency> <groupId>com.itextpdf</groupId> <a ...
- java 图片压缩 剪切 水印 转换 黑白 缩放
专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. import java.awt.AlphaComposite; import java.awt.C ...
- java:给图片上加水印
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...
- Android 让系统自动生成缩略图并写入媒体库
MediaStore.Video.Thumbnails.getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Op ...
- [原创]超强C#图片上传,加水印,自动生成缩略图源代码
<%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...
- php之图片处理类缩略图加水印
用到两个image系统函数 imagecopymerge — 拷贝并合并图像的一部分 imagecopyresampled — 重采样拷贝部分图像并调整大小 /* 如何知道图片的大小和类型 无法确认调 ...
随机推荐
- 折叠面板实现,上传文件进度条,三级联选择器,多级联选择器, 利用layui实现
首先贴出html代码 <form class="layui-form" action=""> <div class="layui-f ...
- centos7 docker安装nginx
1.查询nginx最新镜像 docker search nginx 2.下载镜像 docker pull nginx 3.创建目录 mkdir -p /software/nginx/html mkdi ...
- MySQL/MariaDB数据库的复制监控和维护
MySQL/MariaDB数据库的复制监控和维护 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.清理日志 1>.删除指定日志文件名称之前的日志(也可用基于时间) M ...
- APP测试之MONKEY安装、使用
1.先下载java的jdk;配置java变量 安装好之后会有两个文件夹一个是jdk 一个是jre(运行)然后配置好java环境变量:JAVA_HOME:C:\Program Files\Java\jd ...
- 项目Alpha冲刺——集合
作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 完成项目Alpha冲刺 团队信息 队名:火鸡堂 队员学号 队员姓名 博客地址 ...
- DT图库列表修改内容标题字数
dt限制标题字数的方法有几种,最简单的是一种是: {dsubstr($t[title], 42, '..')} 还有一种是列表输出,也是网上常用的方法 <!--{tag("module ...
- 查询响应慢,DB近乎崩溃
时间:18.11.22 一. 起由: 公司最近因业务,有大量注册,每天大约几万,貌似也不太高? 晚上8点左右,网站后台,前台突然大面积提示502.网站几乎瘫痪.买的阿里云的负载均衡和读写分离.分别是5 ...
- wordpress自定义菜单高级属性设置
我们在创建wordpress自定义菜单时,右上角有一个screen option,点击展开可以选择显示菜单的高级属性,包括:链接目标Link Target.标题属性Title Attribute.CS ...
- 开箱一个docker
1.docker 的出现? 1.1.环境切换配置麻烦 通常我们在开发环境写好代码,打个war/jar包,扔到tomcat下,就算是跑起来了:但是扔到生产环境就挂了,what?各种错误... 1.2.应 ...
- Lightning Web Components 来自salesforce 的web 组件化解决方案
Lightning Web Components 是一个轻量,快速,企业级别的web 组件化解决方案,官方网站也提供了很全的文档 对于我们学习使用还是很方便的,同时我们也可以方便的学习了解salesf ...