Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。

支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。

导入依赖

<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version>
</dependency>

函数示例

从图像文件创建缩略图
Thumbnails.of(new File("original.jpg")).size(160, 160).toFile(new File("thumbnail.jpg"));
在此示例中,图像来自original.jpg调整大小,然后保存到thumbnail.jpg。或者,Thumbnailator将接受文件名作为String。File不需要使用对象指定图像文件:Thumbnails.of("original.jpg").size(160, 160).toFile("thumbnail.jpg");
在编写快速原型代码或从脚本语言中使用Thumbnailator时,此表单非常有用。使用旋转和水印创建缩略图
Thumbnails.of(new File("original.jpg")).size(160, 160).rotate(90).watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f).outputQuality(0.8).toFile(new File("image-with-watermark.jpg"));
在此示例中,original.jpg调整图像大小,然后顺时针旋转90度,然后在右下角放置一个半透明水印,然后image-with-watermark.jpg以80%压缩质量设置保存。创建缩略图并写入 OutputStream
OutputStream os = ...;Thumbnails.of("large-picture.jpg").size(200, 200).outputFormat("png").toOutputStream(os);
在此示例中,将文件中的图像large-picture.jpg调整为最大尺寸200 x 200(保持原始图像的纵横比),并将其写入指定OutputStream的PNG图像。创建固定大小的缩略图
BufferedImage originalImage = ImageIO.read(new File("original.png"));BufferedImage thumbnail = Thumbnails.of(originalImage).size(200, 200).asBufferedImage();
上面的代码采用图像originalImage并创建一个200像素乘200像素的缩略图,并使用并存储结果thumbnail。按给定因子缩放图像
BufferedImage originalImage = ImageIO.read(new File("original.png"));BufferedImage thumbnail = Thumbnails.of(originalImage).scale(0.25).asBufferedImage();
上面的代码将图像originalImage带入并创建一个缩略图,该缩略图是原始图像的25%,并使用默认缩放技术来制作存储在其中的缩略图thumbnail。创建缩略图时旋转图像
BufferedImage originalImage = ImageIO.read(new File("original.jpg"));BufferedImage thumbnail = Thumbnails.of(originalImage).size(200, 200).rotate(90).asBufferedImage();
上面的代码采用原始图像并创建一个顺时针旋转90度的缩略图。使用水印创建缩略图
BufferedImage originalImage = ImageIO.read(new File("original.jpg"));
BufferedImage watermarkImage = ImageIO.read(new File("watermark.png"));BufferedImage thumbnail = Thumbnails.of(originalImage).size(200, 200).watermark(Positions.BOTTOM_RIGHT, watermarkImage, 0.5f).asBufferedImage();
如图所示,可以通过调用该watermark方法将水印添加到缩略图。可以从Positions枚举中选择定位。缩略图的不透明度(或相反地,透明度)可以通过改变最后一个参数来调整,其中0.0f缩略图是完全透明的,并且1.0f水印是完全不透明的。将缩略图写入特定目录
File destinationDir = new File("path/to/output");Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg").size(200, 200).toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);
此示例将获取源图像,并将缩略图作为文件写入destinationDir(path/to/output目录),同时thumbnail.在文件名前添加重命名。因此,缩略图将被写为以下文件:path/to/output/thumbnail.apple.jpg
path/to/output/thumbnail.banana.jpg
path/to/output/thumbnail.cherry.jpg
写入指定目录时,也可以保留原始文件名:File destinationDir = new File("path/to/output");Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg").size(200, 200).toFiles(destinationDir, Rename.NO_CHANGE);
在上面的代码中,缩略图将写入:path/to/output/apple.jpg
path/to/output/banana.jpg
path/to/output/cherry.jpg

Thumbnailator相关推荐

  1. java下使用Thumbnailator类库来对图片进行缩放

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

  2. java thumbnailator 做图片处理

    maven 依赖 <!-- 图片处理 --><!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --& ...

  3. 实战SSM_O2O商铺_08【商铺注册】Thumbnailator图片处理和封装工具类

    文章目录 概述 Thumbnailator 简介 工具类的封装 Step1 添加maven依赖 Step2 FileUtil.java Step3 ImageUtil.java Github地址 概述 ...

  4. SpringBoot 集成 thumbnailator (图片缩放,区域裁剪,水印,旋转,保持比例)保姆级教程(含代码)

    Thumbnailator 是 Google 开源的图片处理库,支持:图片缩放,区域裁剪,水印,旋转,保持比例.详细介绍可以百度或官网,话不多说,直接上代码,具体要结合自己的业务需要进行使用(有些复杂 ...

  5. thumbnailator压缩图片并存至Excel单元格代码

    文章目录 依赖 压缩图片工具类: 存至excel的转化器 Excel导入导出的数据类 将数据库实体转化为excel实体 依赖 <dependency><groupId>com. ...

  6. 图片压缩上传Thumbnailator 插件

    假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情 ...

  7. 使用Thumbnailator压缩照片

    导入依赖 <dependency><groupId>net.coobird</groupId><artifactId>thumbnailator< ...

  8. thumbnailator 一个好用的图像处理工具集

    2019独角兽企业重金招聘Python工程师标准>>> thumbnailator 是一个好用的图像处理工具集,可以用来处理缩略图,功能全面,使用简单,目前的版本是 0.4.6 .今 ...

  9. java图像处理002---JAVA图片压缩_图片缩放_图片按照比例缩放_图片指定长宽缩放_Java使用google开源工具Thumbnailator实现图片压缩

    JAVA技术交流QQ群:170933152 前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高 ...

  10. 使用Thumbnailator处理gif图片时遇到java.lang.ArrayIndexOutOfBoundsException: 4096异常处理

    使用Thumbnailator处理gif图片时遇到java.lang.ArrayIndexOutOfBoundsException: 4096异常处理 参考文章: (1)使用Thumbnailator ...

最新文章

  1. python selenium xpath_python+selenium十四:xpath和contains模糊匹配
  2. C与指针、C陷阱与缺陷
  3. BUUCTF(pwn)bjdctf_2020_babystack2
  4. Mac下修改ZOC中文乱码
  5. 用vim看代码的常用指令
  6. 加载类_JVM类加载详解
  7. unit类型是什么?_面试官虚晃一枪:项目中有用过锁吗?能解释一下什么是AQS?...
  8. (软件工程复习核心重点)第三章需求分析习题
  9. Delphi开发中增删改查操作以及存储过程的调用方式
  10. 使用ASP.NET Core和Angular 8的服务器端分页
  11. [Django学习] Django基础(5)_优化分页器
  12. Linux之chmod命令
  13. 一起来读you don't know javascript(一)
  14. python常用模块②
  15. MAC 终端git提交代码步骤
  16. 网吧安内线 黑客遥控偷Q币出售牟利
  17. 软考常考知识点整理-项目人员配备管理计划
  18. Marshmallow详解
  19. 使用tree生成目录树结构
  20. 理解快速排序 | 打通算法学习的任督二脉

热门文章

  1. 拿走不谢!固件逆向分析过程中的工具和技巧(上)
  2. L5W2作业2 词向量的基本操作
  3. 12、FPGA程序的固化和下载
  4. 【C语言细枝末节の杂谈】转义字符
  5. Skype for Business Server 2015-04-前端服务器-7-部署
  6. 2016年保密技术交流大会的璀璨之星—亿赛通
  7. 计算机多媒体对语文教学的提高,语文教学中多媒体教学运用心得
  8. Java爬虫技术—入门秘籍之HTTP协议和robtos协议(一)
  9. python读文件的三种方式_Python|读、写Excel文件(三种模块三种方式)
  10. 2022年全球与中国磁簧开关市场现状及未来发展趋势