net.coobird.thumbnailator.Thumbnails 库的使用
创始人
2025-05-30 10:47:13
0

1.简单介绍

net.coobird.thumbnailator.Thumbnails 是一个用于创建图像缩略图的 Java 库。该库提供了一个简单的 API,允许你在几行代码中创建高质量的缩略图,并支持各种图像格式。下面是该库的一些主要特点:

  • 简单易用:Thumbnails 类提供了一个简单的 API,允许你在几行代码中创建高质量的缩略图。

  • 多种缩放选项:库提供了多种缩放选项,包括按比例缩放、指定宽高缩放和指定最大宽高缩放。

  • 高质量缩略图:使用库创建的缩略图具有高质量,使用了一些高级技术,如子采样和平滑缩放算法。

  • 支持多种图像格式:库支持各种常见的图像格式,如 JPEG、PNG 和 GIF。

  • 灵活的配置选项:库提供了多种配置选项,如设置缩略图质量、设置输出格式和设置输出位置等。

  • 基于 Java:该库是基于 Java 编写的,可以与 Java 项目轻松集成。

2.用途

net.coobird.thumbnailator.Thumbnails 库可以用于在 Java 应用程序中创建图像缩略图,常见的用途包括:

  1. 图像展示:将原始图像缩小以适应屏幕空间,以提高用户体验。

  2. 图像处理:在处理大量图像时,缩略图可以用于快速预览和选择图像,减少处理时间和资源消耗。

  3. 图像上传:在上传图像到网络服务器时,使用缩略图可以减少上传时间和宽带使用量。

  4. 网站设计:在网站设计中,缩略图可用于展示图像库或商品目录等内容,以提高用户体验和页面加载速度。

总之,net.coobird.thumbnailator.Thumbnails 库提供了一种方便的方式来在 Java 应用程序中创建高质量的缩略图,可以在多种应用场景中使用,以提高用户体验和减少资源消耗。

 3.实例举例

1.按比例缩放图像:

Thumbnails.of("input.jpg").scale(0.5).toFile("output.jpg");

这个示例将 input.jpg 文件缩小到原始大小的一半,并将结果保存为 output.jpg 文件。

2.指定缩略图的宽高:

Thumbnails.of("input.jpg").size(200, 200).toFile("output.jpg");

 这个示例将 input.jpg 文件缩小到宽度和高度均为 200 像素的大小,并将结果保存为 output.jpg 文件。

3.指定最大宽高并保持比例:

Thumbnails.of("input.jpg").size(800, 800).keepAspectRatio(true).toFile("output.jpg");

这个示例将 input.jpg 文件缩小到宽度和高度均不超过 800 像素的大小,并保持宽高比例不变,并将结果保存为 output.jpg 文件。

4.设置输出格式和质量:

Thumbnails.of("input.jpg").size(200, 200).outputFormat("png").outputQuality(0.8).toFile("output.png");

这个示例将 input.jpg 文件缩小到宽度和高度均为 200 像素的大小,将输出格式设置为 PNG 格式,并将输出质量设置为 80%,并将结果保存为 output.png 文件。

5. 指定宽度,但高度和原图一样

Thumbnails.of(coverPath).size(376, Thumbnails.of(coverPath).height(null)).toFile(coverPath);

在这个代码中,size() 方法的第一个参数指定所需的宽度为 376 像素,第二个参数使用 Thumbnails.of(coverPath).height(null) 来获取原始图像的高度,并将其指定为缩略图的高度。这将使缩略图具有与原始图像相同的高度,但宽度将更改为 376 像素。最后,缩略图将覆盖原始文件,因为 toFile() 方法的参数是原始文件的路径。

6.指定宽度为 376 像素,并使高度随原始图像高度自动计算

Thumbnails.of(coverPath).size(376, 0).toFile(coverPath);

在这个代码中,size() 方法的第一个参数指定所需的宽度为 376 像素,第二个参数为 0,这将告诉库自动计算所需的高度,以保持原始图像的宽高比。最后,缩略图将覆盖原始文件,因为 toFile() 方法的参数是原始文件的路径。

相关内容

热门资讯

全网最详细,Jmeter性能测... 目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目...
刑释解教人员安置帮教工作计划 刑释解教人员安置帮教工作计划  为切实做好刑满解教人员的安置帮教工作,预防和减少重新犯罪,降低恶性案...
语文教学工作计划 有关语文教学工作计划四篇  时间真是转瞬即逝,我们的工作又将在忙碌中充实着,在喜悦中收获着,让我们对...
办公室工作计划 关于办公室工作计划范文合集十篇  时间真是转瞬即逝,成绩已属于过去,新一轮的工作即将来临,来为以后的...
记一次Excel模板导出功能 前言 这篇文章是要记载在开发过程中实现:使用自己定义的excel模板文件,将list数据填入模板文件...
学校教师德育工作计划 学校教师德育工作计划  时间过得太快,让人猝不及防,我们的工作又将迎来新的进步,是时候开始写工作计划...
秋季幼儿园保育工作计划 秋季幼儿园保育工作计划(精选3篇)  时间真是转瞬即逝,我们的工作又迈入新的阶段,让我们一起来学习写...
八年级英语教学工作计划 八年级英语教学工作计划合集15篇  光阴迅速,一眨眼就过去了,很快就要开展新的工作了,现在的你想必不...
学校工作计划 【精品】学校工作计划合集8篇  光阴如水,我们又将迎来新一轮的努力,不妨坐下来好好写写工作计划吧。相...
样式声明——文本属性 系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录1.文本的颜色...
springcloud3 Se... 一 分布式事务 1.1 分布式事务 一次业务操作需要跨多个数据源或者需要跨多个系统进行远程调用&#x...
Hadoop--万恶NameN... 每次用到Hadoop集群时NameNode总有各种各样奇奇怪怪的问题启动不了或者hdfs用9870端...
小学安全工作计划 【精选】小学安全工作计划汇编8篇  日子如同白驹过隙,我们又将迎来新一轮的努力,为此需要好好地写一份...
小学综合实践工作计划 小学综合实践工作计划(精选20篇)  光阴迅速,一眨眼就过去了,我们又有了新的工作,是时候认真思考工...
机器人误差动力学与PID控制 #机器人 #控制 #误差动力学 #设定点控制 #计算力矩控制器 #PID控制 详细可参考书本:《现代...
3.19百度移动端 一连三... 记录一下第一次面试过程,积德求offer😭 预约的3.19上午九点的面...
如何学习深度学习 深度学习是机器学习领域中的一个分支,它通过多层神经网络来建模和解决各种问题。深度学习已...
秋季学期幼儿园教师的工作计划 2021年秋季学期幼儿园教师的工作计划(精选5篇)  时间过得真快,总在不经意间流逝,我们的工作又迈...
小学班级工作计划 小学班级工作计划(通用17篇)  时间过得飞快,我们的工作又进入新的阶段,为了今后更好的工作发展,此...
0-1背包问题dp[][]/d... 先推荐个视频b站算法训练营一、类型1,重量限制题目:给定N个物品,每个物...