【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 ...
随机推荐
- WiderFace标注格式转PASCAL VOC2007标注格式
#coding=utf-8 import os import cv2 from xml.dom.minidom import Document def create_xml(boxes_dict,ta ...
- poj 3264(RMQ或者线段树)
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 42929 Accepted: 20184 ...
- 数据库索引(Index)【未完待续】
数据库索引是啥?有什么用?原理是什么?最佳实践什么? 索引是啥 一个索引是这样的数据结构:从数据上来说,不仅包含了从表中某一列或多列的数据拷贝,同时,还包含了指向这列数据行的链接: 从结构上来说,索引 ...
- WordPress匿名投稿插件:DX-Contribute(WP我要投稿,我要爆料)
倡萌在<WordPress添加投稿功能(无需注册/可邮件通知站长和投稿人) >中分享过,通过修改主题文件实现游客快捷投稿的功能,但是有部分同学就是不太会动手,那么今天就分享一个WordPr ...
- 关于星号(**/*.java)
关于星号(**/*.java) (1)前面两个星号(**)表示在项目的所有文件夹(包括子文件夹)中的文件:*.java表示以 .java结尾的所有文件. (2)如果前面两个星号(**)没有,只有星号( ...
- AC日记——Power收集 洛谷 P3800
Power收集 思路: 单调队列优化dp: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 4005 stru ...
- Entity Framework中使用DbCompiledModel中遇到的坑和解决方案
前段时间,在公司做项目时,引入Entity Framework Code First的方法. 我们公司的软件为SaaS结构,有N个企业注册,其中SQL Server中有一张表为t_User_企业注册号 ...
- lr手工添加关联函数的步骤:
点击“确定”后: 如何修改已经创建好的关联规则:
- 字符串Hash相关
其实也并不是什么特别难的算法,但是我个人实在是不太喜欢字符串之类的东西(字符串神马的真的是麻烦),于是一直拖着不想看,然后模板题之类的也懒得做. Hash的思想其实也没什么复杂的,就是给定一系列字符串 ...
- 计蒜客 UCloud 的安全秘钥(困难)(哈希)
UCloud 的安全秘钥(困难) 编辑代码 9.53% 1200ms 262144K 每个 UCloud 用户会构造一个由数字序列组成的秘钥,用于对服务器进行各种操作.作为一家安全可信的云计算平台,秘 ...