【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基础 寻找随机函数的G点
引言 随机函数算法应该是计算机史上最重要的十大算法之一吧. 而C中使用的随机函数 #include <stdlib.h> _Check_return_ _ACRTIMP int __cde ...
- 神奇JavaScript框架---Top5
前言 个人观点,供您参考 观点源自作者的使用经验和日常研究 排名基于框架的受欢迎度, 语法结构, 易用性等特性 希望大家能够基于此视频找到最适合自己的框架 下面介绍的都是严格的前端框架和库 前言 To ...
- nodejs面试题
1.为什么用Nodejs,它有哪些缺点? 事件驱动,通过闭包很容易实现客户端的生命活期. 不用担心多线程,锁,并行计算的问题 V8引擎速度非常快 对于游戏来说,写一遍游戏逻辑代码,前端后端通用 当然N ...
- make :err Makefile.ssl is older than Makefile.org. Reconfigure the source tree (via './config' or 'perl Configure'), please.
内核编译时出现错误 Makefile.ssl is older than Makefile.org. Reconfigure the source tree (via './config' or 'p ...
- 【linux】crontab定时命令
参考来源: http://blog.csdn.net/ariessurfer/article/details/7459183 http://www.jb51.net/LINUXjishu/19905. ...
- Search for a Range——稍微升级版的二分查找
Given a sorted array of integers, find the starting and ending position of a given target value. You ...
- Jmeter+Jenkins持续集成(Ant运行脚本)
Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告. Ant是一个功能强大的打包编译工具.我们使用他的目的是将xml ...
- 【转】Jmeter-----函数引用和函数重定向
详见内文
- 设置loadrunner中每个mdrv.exe进程中包含的vuser个数
设置loadrunner中每个mdrv.exe进程中包含的vuser个数 在loadrunner中,默认的是每50个vuser会使用一个mdrv.exe进程,但是有些时候vuser中的使用的线程太多就 ...
- mangeto 清除分类 产品 客户
分类: SET FOREIGN_KEY_CHECKS=0; TRUNCATE TABLE `catalog_category_entity`; TRUNCATE TABLE `catalog_cate ...