Thumbnailator概述:

   

Thumbnailator是与Java界面流畅的缩略图生成库。它简化了通过提供一个API允许精细的缩略图生成调整生产从现有的图像文件的缩略图和图像对象的过程,同时保持所需要的最少的代码量。个人的理解,它对java自带的图片处理工具进行了优化,在效率和使用的方便程度上都要高于java自带的处理工具。Thumbnailator的主要常用功能如下:

  1. 按尺寸原比例缩放图片
  2. 按百分比缩放图片
  3. 按尺寸缩放图片,但不保持原图片比例
  4. 按角度旋转图片
  5. 给图片添加水印效果
  6. 缩放图片写入到输出流中

下面将对各个功能进行逐一的示范演示,以及最终的处理效果

  • 原图展示

  • 按尺寸原比例缩放图片

代码如下:

  1. public static boolean operateByMaxSize(String inSrc, String outSrc, int height, int width){
  2. boolean flag = false;
  3. if(checkNull(inSrc) || checkNull(outSrc)){
  4. return flag;
  5. }
  6. try {
  7. Thumbnails.of(inSrc).size(width, height).toFile(outSrc);
  8. flag = true;
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. }
  12. return flag;
  13. }

处理之后的图片效果如下:

  • 按百分比缩放图片

代码如下:

  1. public static boolean operateByPer(String inSrc, String outSrc, double percent){
  2. boolean flag = false;
  3. if(checkNull(inSrc) || checkNull(outSrc)){
  4. return flag;
  5. }
  6. Builder<File> builder = Thumbnails.of(inSrc);
  7. builder.scale(percent);
  8. try {
  9. builder.toFile(outSrc);
  10. flag = true;
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. }
  14. return flag;
  15. }

效果展示如下:

  • 按尺寸缩放图片,但不保持原图片比例

代码如下:

  1. public static boolean operateBySize(String inSrc, String outSrc, int height, int width){
  2. boolean flag = false;
  3. if(checkNull(inSrc) || checkNull(outSrc)){
  4. return flag;
  5. }
  6. Builder<File> builder = Thumbnails.of(inSrc);
  7. builder.size(width, height);
  8. builder.keepAspectRatio(false);
  9. try {
  10. builder.toFile(outSrc);
  11. flag = true;
  12. } catch (IOException e) {
  13. e.printStackTrace();
  14. }
  15. return flag;
  16. }

效果展示如下:

  • 按角度旋转图片

代码如下:

  1. public static boolean rotate(String inSrc, String outSrc, double angle){
  2. boolean flag = false;
  3. if(checkNull(inSrc) || checkNull(outSrc)){
  4. return flag;
  5. }
  6. try {
  7. Thumbnails.of(inSrc).rotate(angle).size(1000, 1000).toFile(outSrc);
  8. flag = true;
  9. } catch (IOException e) {
  10. e.printStackTrace();
  11. }
  12. return flag;
  13. }

效果展示如下:

  • 给图片添加水印效果

代码如下:

  1. public static boolean addWaterImg(String inSrc, String outSrc,
  2. String waterImg, Positions position, double percent) {
  3. boolean flag = false;
  4. if (checkNull(inSrc) || checkNull(outSrc) || checkNull(waterImg)) {
  5. return flag;
  6. }
  7. try {
  8. Thumbnails
  9. .of(inSrc).size(1000, 1000)
  10. .watermark(position, ImageIO.read(new File(waterImg)), 0.1f)
  11. .outputQuality(percent).toFile(outSrc);
  12. flag = true;
  13. } catch (IOException e) {
  14. e.printStackTrace();
  15. }
  16. return flag;
  17. }

效果如下:

  • 缩放图片写入到输出流中

代码如下:

  1. public static void toOutputStream(String inSrc, String outSrc, int height, int width){
  2. if (checkNull(inSrc) || checkNull(outSrc)) {
  3. return ;
  4. }
  5. OutputStream os = null;
  6. try {
  7. os = new FileOutputStream(outSrc);
  8. Thumbnails.of(inSrc).size(width, height).toOutputStream(os);
  9. } catch (FileNotFoundException e) {
  10. e.printStackTrace();
  11. } catch (IOException e) {
  12. e.printStackTrace();
  13. } finally {
  14. try {
  15. os.close();
  16. } catch (IOException e) {
  17. e.printStackTrace();
  18. }
  19. }
  20. }

效果如下:

【Thumbnailator】java 使用Thumbnailator实现等比例缩放图片,旋转图片等【转载】的更多相关文章

  1. css技术之用最高和最宽的限制“max-height和max-width”做图片同比例缩放,达到图片不变形目的,做出批量打印图片功能,页面打印“window.print()”

    一.简介 他们是为流而生的,像width/height这种定死的砖头式布局,min-width/max-width就没有存在的意义 ,min-width/max-width一定是自适应布局或流体布局中 ...

  2. android项目 之 记事本(12) ----- 图片的等比例缩放及给图片加入边框

    本文是自己学习所做笔记.欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 在Android的UI开发中常常会遇到图片的缩放,就比方记事本,如今的图片都比較 ...

  3. php图片等比例缩放

    新建文件index.php,需要在统计目录下有个图片为q.jpg(可根据源码进行更改图片的名称) 源代码如下: <?php$filename="q.jpg"; $per=0. ...

  4. css 如何实现图片等比例缩放

    在进行布局的时候,很多PM都要求图片等比例缩放,而且要求图片不失真,不变形,但是UI设计好了这个div的宽度又不能随意更改,而后台传过来的图片也不是等比例的图片,这就比较难受了,写成 width: 1 ...

  5. js实现图片的等比例缩放

      js实现图片的等比例缩放 CreateTime--2018年3月6日14:04:18 Author:Marydon 1.代码展示 /** * 图片按宽高比例进行自动缩放 * @param ImgO ...

  6. 【Java实例】使用Thumbnailator生成缩略图(缩放、旋转、裁剪、水印)

    1 需求 表哥需要给儿子报名考试,系统要求上传不超过30KB的图片,而现在的手机随手一拍就是几MB的,怎么弄一个才30KB的图片呢? 一个简单的办法是在电脑上把图片缩小,然后截屏小图片,但现在的电脑屏 ...

  7. java使用Thumbnailator操作图片

    Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图. Thumbnailato ...

  8. Thumbnailator java图片压缩,加水印,批量生成缩略图

    地址:http://code.google.com/p/thumbnailator/ 1.指定大小进行缩放 //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横 ...

  9. Java三方---->Thumbnailator框架的使用

    Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图.有了它我们就不用在费心思使用Image I/O API,J ...

随机推荐

  1. 安装:python+webdriver环境

    安装:python+webdriver环境第一步:安装active-python,双击可执行文件,直接默认安装即可.第二步:安装selenium webdriver1. 打开cmd2. 命令为:pip ...

  2. aspxpivotgrid 导出excel时,非绑定咧显示为0的情况

    using DevExpress.XtraPrinting; Exporter.ExportXlsToResponse(this.Title,TextExportMode.Text,true); // ...

  3. java实现数据库分页

    /*** * 工具类 * @param pageIndex //页码 * @param pageSize//每页数据的条数 * @param rowCount//总的数据条数 * @return */ ...

  4. vue数据绑定方式:

    1,{{   }} 2,v-text 3,v-html  前两种接受普通变量,第三种绑定带有标签的内容,但是严禁使用,这个会有 XSS危险,(将字符串解析成源代码) 4,v-bind:title=‘m ...

  5. HDU-5272

    Dylans loves numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/O ...

  6. Excel Sheet Column Title&&Excel Sheet Column Number

    Excel Sheet Column Title Given a positive integer, return its corresponding column title as appear i ...

  7. 把web项目部署到tomcat上

    首先在服务器搭建JDK环境:https://www.cnblogs.com/lb809663396/p/5855877.html 然后把tomcat文件包复制到服务器上,访问http://localh ...

  8. Python 从基础------进阶------算法 系列

    1.简介                                                                                               关 ...

  9. Hadoop 学习【一】 安装部署

    目标:测试Hadoop的集群安装 参考文档: [1]http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/Sin ...

  10. SpringBoot学习:整合Mybatis,使用HikariCP超高性能数据源

    一.添加pom依赖jar包: <!--整合mybatis--> <dependency> <groupId>org.mybatis.spring.boot</ ...