【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 ...
随机推荐
- HDU 5116 Everlasting L
题目链接:HDU-5116 题意:给定若干个整数点,若一个点集满足P = {(x, y), (x + 1, y), . . . , (x + a, y), (x, y + 1), . . . , (x ...
- Unsupported gpu architecture 'compute_20'
NVCC src/caffe/layers/reduction_layer.cunvcc fatal : Unsupported gpu architecture 'compute_20'Make ...
- windows访问linux共享文件夹
1.windows的网上邻居,是通过smb协议来共享信息的,如果需要给访问linux上的共享目录被windows访问到,需要linux有smb协议 sudo apt-get install samba ...
- 利用h5,chart.js监测手机三轴加速度,用以研究计步算法等
用window.DeviceMotionEvent来判断手机浏览器是否支持访问硬件资源,window.addEventListener('devicemotion',deviceMotionHandl ...
- jequry_rotate.js用来写旋转类的东西的插件(如:抽奖转盘)
网上发现一个很有意思的jQuery旋转插件,支持Internet Explorer 6.0+ .Firefox 2.0 .Safari 3 .Opera 9 .Google Chrome,高级浏览器下 ...
- linux命令(42):wc命令
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件... 2.命令功能: 统计指定文件中的字节数. ...
- 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——四大变换&光照与材质
第13章 四大变换 在Direct3D中,如果为进行任何空间坐标变换而直接绘图的话,图形将始终处于应用程序窗口的中心位置,默认这个位置就成为世界坐标系的原点(0,0,0).而且我们也不能改变观察图形的 ...
- poj 3280(区间DP)
Cheapest Palindrome Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7869 Accepted: 38 ...
- 修改Struts2的struts.xml配置文件位置
默认情况下,Struts2的配置文件名称为struts.xml,且该文件放在src根目录下.如下图所示: 如果需要修改struts.xml的位置,例如把struts.xml放到struts2文件夹下, ...
- PHP通过mysqli连接mysql数据库
数据库连接的天龙八步: 1.连接数据库 连接:mysqli_connect 2.成功与否判断 连接错误号:mysqli_connect_errno 连接错误信息:mysqli_connect_erro ...