【Thumbnailator】java 使用Thumbnailator实现等比例缩放图片,旋转图片等【转载】
Thumbnailator概述:
Thumbnailator是与Java界面流畅的缩略图生成库。它简化了通过提供一个API允许精细的缩略图生成调整生产从现有的图像文件的缩略图和图像对象的过程,同时保持所需要的最少的代码量。个人的理解,它对java自带的图片处理工具进行了优化,在效率和使用的方便程度上都要高于java自带的处理工具。Thumbnailator的主要常用功能如下:
- 按尺寸原比例缩放图片
- 按百分比缩放图片
- 按尺寸缩放图片,但不保持原图片比例
- 按角度旋转图片
- 给图片添加水印效果
- 缩放图片写入到输出流中
下面将对各个功能进行逐一的示范演示,以及最终的处理效果
- 原图展示

- 按尺寸原比例缩放图片
代码如下:
- public static boolean operateByMaxSize(String inSrc, String outSrc, int height, int width){
- boolean flag = false;
- if(checkNull(inSrc) || checkNull(outSrc)){
- return flag;
- }
- try {
- Thumbnails.of(inSrc).size(width, height).toFile(outSrc);
- flag = true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return flag;
- }
处理之后的图片效果如下:

- 按百分比缩放图片
代码如下:
- public static boolean operateByPer(String inSrc, String outSrc, double percent){
- boolean flag = false;
- if(checkNull(inSrc) || checkNull(outSrc)){
- return flag;
- }
- Builder<File> builder = Thumbnails.of(inSrc);
- builder.scale(percent);
- try {
- builder.toFile(outSrc);
- flag = true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return flag;
- }
效果展示如下:

- 按尺寸缩放图片,但不保持原图片比例
代码如下:
- public static boolean operateBySize(String inSrc, String outSrc, int height, int width){
- boolean flag = false;
- if(checkNull(inSrc) || checkNull(outSrc)){
- return flag;
- }
- Builder<File> builder = Thumbnails.of(inSrc);
- builder.size(width, height);
- builder.keepAspectRatio(false);
- try {
- builder.toFile(outSrc);
- flag = true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return flag;
- }
效果展示如下:

- 按角度旋转图片
代码如下:
- public static boolean rotate(String inSrc, String outSrc, double angle){
- boolean flag = false;
- if(checkNull(inSrc) || checkNull(outSrc)){
- return flag;
- }
- try {
- Thumbnails.of(inSrc).rotate(angle).size(1000, 1000).toFile(outSrc);
- flag = true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return flag;
- }
效果展示如下:

- 给图片添加水印效果
代码如下:
- public static boolean addWaterImg(String inSrc, String outSrc,
- String waterImg, Positions position, double percent) {
- boolean flag = false;
- if (checkNull(inSrc) || checkNull(outSrc) || checkNull(waterImg)) {
- return flag;
- }
- try {
- Thumbnails
- .of(inSrc).size(1000, 1000)
- .watermark(position, ImageIO.read(new File(waterImg)), 0.1f)
- .outputQuality(percent).toFile(outSrc);
- flag = true;
- } catch (IOException e) {
- e.printStackTrace();
- }
- return flag;
- }
效果如下:

- 缩放图片写入到输出流中
代码如下:
- public static void toOutputStream(String inSrc, String outSrc, int height, int width){
- if (checkNull(inSrc) || checkNull(outSrc)) {
- return ;
- }
- OutputStream os = null;
- try {
- os = new FileOutputStream(outSrc);
- Thumbnails.of(inSrc).size(width, height).toOutputStream(os);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- try {
- os.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
效果如下:

【Thumbnailator】java 使用Thumbnailator实现等比例缩放图片,旋转图片等【转载】的更多相关文章
- css技术之用最高和最宽的限制“max-height和max-width”做图片同比例缩放,达到图片不变形目的,做出批量打印图片功能,页面打印“window.print()”
一.简介 他们是为流而生的,像width/height这种定死的砖头式布局,min-width/max-width就没有存在的意义 ,min-width/max-width一定是自适应布局或流体布局中 ...
- android项目 之 记事本(12) ----- 图片的等比例缩放及给图片加入边框
本文是自己学习所做笔记.欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在Android的UI开发中常常会遇到图片的缩放,就比方记事本,如今的图片都比較 ...
- php图片等比例缩放
新建文件index.php,需要在统计目录下有个图片为q.jpg(可根据源码进行更改图片的名称) 源代码如下: <?php$filename="q.jpg"; $per=0. ...
- css 如何实现图片等比例缩放
在进行布局的时候,很多PM都要求图片等比例缩放,而且要求图片不失真,不变形,但是UI设计好了这个div的宽度又不能随意更改,而后台传过来的图片也不是等比例的图片,这就比较难受了,写成 width: 1 ...
- js实现图片的等比例缩放
js实现图片的等比例缩放 CreateTime--2018年3月6日14:04:18 Author:Marydon 1.代码展示 /** * 图片按宽高比例进行自动缩放 * @param ImgO ...
- 【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)
1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏 ...
- java使用Thumbnailator操作图片
Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图. Thumbnailato ...
- Thumbnailator java图片压缩,加水印,批量生成缩略图
地址:http://code.google.com/p/thumbnailator/ 1.指定大小进行缩放 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横 ...
- Java三方---->Thumbnailator框架的使用
Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图.有了它我们就不用在费心思使用Image I/O API,J ...
随机推荐
- C基础 读写锁中级剖析
引言 读写锁 是为了 解决, 大量 ''读'' 和 少量 ''写'' 的业务而设计的. 读写锁有3个特征: 1.当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞 2.当 ...
- 【VI Script】你不知道的脚本编程
前言 近期,小黑在写程序的时候,经常会遇到一些重复性的工作.尤其是在写到QMH(Queued Message Handler)程序时,经常需要创建UI界面上的一些控件引用,并且在程序中捆绑成簇使用. ...
- HIbernate学习笔记2 之 主键生成方式
一.hibernate主键生成方式: 1.常用方式:mysql:自增长生成主键(identity) <generator class="identity"> </ ...
- highcharts 折线,饼状,条状综合图
完整代码如下: <head> <meta http-equiv="Content-Type" content="text/html; charset=u ...
- redis之(一)redis的简单介绍
[一]:概念 --->Redis是一个开源的,高性能的,基于键值对的缓存与存储系统 --->Redis数据库中的多有数据都存储在内存中,由于内存的读写速度远快于硬盘,一秒读写超过10万键值 ...
- matlab实用命令
实用命令 打点测时 在需要测量的开始部分标记: tic 在需要测量的结束部分标记: toc 记录程序从tic到toc运行所花费的时间 Image 翻转 fliplr(x) //左右翻转 flipud( ...
- GT-----FAQ整理
1.pss0,pss1,这里的序号0和1是什么意思? 说明选的目标调试 App 有至少 2 个进程,先启动的那个进程的 pss 值会被加后缀 0,后启动那个会被加后 缀 1.所有参数前面的“ ...
- logrotate日志轮转
1)基本介绍 适合应用服务日志,系统日志按天切割 如果没有日志轮转,日志文件会越来越大 将丢弃系统中最旧的日志文件,以节省空间 logrotate本身不是系统守护进程,它是通过计划任务crond每天执 ...
- ubuntu右上角红色三角警告
问题:ubuntu右上角红色三角感叹号警告,显示更新信息已过期The update information is outdated. 解决方案: 首先在“系统设置(system settings)”- ...
- android studio偏好设置
1.主题设置,可以选择白色主题及黑色主题 2.代码字体大小 3.生成新的主题 主题命名 4.加入代码时,自动引用库 5.合作菜单生成菜码 6.命名空间设置 字段设置为大写,静态字段设置为小写 SDK设 ...