net.coobird.thumbnailator.Thumbnails 库的使用

Java图像处理利器Thumbnailator使用指南 图像处理是现代应用开发中的常见需求,尤其在Web和移动应用中,高效的缩略图生成直接影响用户体验。Java生态中的Thumbnailator库通过流式API封装了复杂的图像处理逻辑,使开发者能够轻松实现图片缩放、裁剪、旋转和水印等操作。其核心原理是基于Java原生Image I/O API进行二次封装,提供线程安全的零依赖解决方案。在电商平台、社交应用等需要处理大量用户上传图片的场景中,Thumbnailator的链式调用和批量处理能力显著提升开发效率。该库特别适合需要保持EXIF元数据、支持多种输出格式的高 阅读详情
AI摘要

thumbnailator是一个简单的Java库,用于生成图像缩略图,支持按比例、指定尺寸缩放,保持高质量。适用于图像展示、处理、上传和网站设计,提高用户体验并减少资源使用。

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() 方法的参数是原始文件的路径。

Thumbnailator实现图片压缩,旋转,添加水印 先看一下效果图吧: 主要的代码如下: package sea; import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Positions; import javax.imageio.ImageIO; import java.awt.image.Buff 阅读详情

相关推荐

Java图像处理利器Thumbnailator实战指南

图像处理是现代应用开发中的常见需求,特别是在需要生成缩略图的场景。Java生态中的Thumbnailator库通过简洁的API封装了复杂的图像处理逻辑,开发者只需几行代码就能实现图片缩放、旋转、水印添加等功能。其流式接口设计符合现代编程习惯,支持从文件、流或内存中读取图像,并能输出到不同目标。在电商平台、社交应用等需要处理大量图片的场景中,Thumbnailator能显著提升开发效率。该库支持JPEG质量调整、批量处理等高级功能,经过生产环境验证,是Java开发者处理图像任务的优选工具。

chiman6219的博客 464

java图像压缩(使用net.coobird.thumbnailator包下Thumbnails类实现)

首先大概了解一下base64与图片压缩 Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24), 然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说, 转换后的字符串理论上将要比原来的长1/3。(空间占用约为原来的1.333倍)。 对于图片转为base64再转为byte数组,最好不要用java.util包下的Base64类,可能会出现报错, 改用org.apache.commons.codec.binary包下的Base64工具类。 经过实测使

qq_38195687的博客 4622

thumbnailator jar包

thumbnailator 开源图像处理工具jar包

Java使用Thumbnailator图片处理指南

Thumbnailator是一个功能强大且易于使用的Java图片处理库。无论是缩放、裁剪、旋转还是格式转换,Thumbnailator都提供了简洁的API,使这些操作变得非常简单。

shyの个人笔记 2051

AI嵌入式系统测试:从确定性验证到概率性评估的体系构建

软件测试是保障系统质量的关键环节,其核心在于验证功能是否符合预期。传统嵌入式测试聚焦于确定性逻辑,通过代码覆盖、边界值分析等方法确保时序、内存等指标的精确性。随着人工智能技术的普及,深度学习模型以其概率性输出和复杂非线性映射的特性,为嵌入式系统带来了新的能力,也彻底改变了测试的范式。AI模型的‘黑盒’特性使得测试目标从‘绝对正确’转向‘置信度满足’,并催生了准确率、F1分数等新指标。在工程实践中,这种融合要求测试体系必须扩展维度,将数据质量、模型量化损失、资源约束下的精度与性能权衡纳入核心考量。尤其在嵌入式

weixin_26766559的博客 381

SAR成像系列:【9】合成孔径雷达(SAR)成像算法-波数域(omega-K)成像算法[也叫距离徙动(RM)算法](附Matlab代码)

合成孔径雷达(SAR)波数域(wK)成像算法也称为距离徙动(RM)算法,它不存在近似条件,可以对整个成像区域基于散射点模型进行精确聚焦。有的文章中称它为SAR成像的最佳实现。

zr2006_7的专栏 1万+

JavaDemo——java使用Thumbnails处理图片

thumbnailator是谷歌处理图片的开源工具类,可以对图片进行缩放,旋转,压缩,剪裁,添加水印,转换格式等; 参考api:http://coobird.github.io/thumbnailator/javadoc/0.4.8/net/coobird/thumbnailator/package-summary.html maven引入: <dependency> ...

FlyLikeButterfly的博客 5837

实战篇【2】-H3C防火墙开局基础配置

本篇文章为“H3C防火墙开局基础配置”,主要涵盖配置管理地址、聚合端口、安全区域、安全策略、静态路由、ACL,WEB和SSH远程管理、Console、SNMP、NTP时钟、日志主机等内容,对比交换机配置开局,增加两处配置,安全区域和安全策略。方便调试人员远程管理、调试。

weixin_47402139的博客 1万+

thumbnailator工具类

import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream;import javax.imageio.I

菜鸟腾飞 1210

「API取数」FDL获取金蝶云星空的单据数据

本文介绍了如何使用FDL实现金蝶云API取数以及如何有效应对复杂的API数据处理场景。

oOBubbleX的博客 2026

深入解析DisplayPort(DP)接口:从主链路到辅助通道的全方位技术剖析

本文深入解析DisplayPort(DP)接口的核心技术架构,重点剖析了其三大功能模块:承载视频/音频数据洪流的Main-Link主链路、负责链路训练与设备控制的AUX CH辅助通道,以及实现智能交互的HPD热插拔检测。文章详细阐述了主链路的可伸缩Lane配置、嵌入式时钟与数据成帧机制,以及辅助通道在设备发现、动态优化信号质量(链路训练)中的关键作用,揭示了DP接口实现高效率与灵活性的设计哲学。

weixin_29267307的博客 485

Thumbnailator:高质量缩略图Java开发库下载及api

api:https://coobird.github.io/thumbnailator/javadoc/0.4.8/ 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标...

zxt1005759639的博客 2415

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 384

Java后端图片处理实战:从Thumbnailator库使用到高并发服务优化

数字图像处理是后端开发中的常见需求,其核心在于理解图片的编码原理与色彩空间。图片格式如JPEG、PNG、WebP等,通过不同的压缩算法在画质与体积间取得平衡,而sRGB等色彩空间则决定了颜色的准确呈现。掌握这些原理,对于构建稳定高效的图片服务至关重要,能够避免常见的模糊、色彩失真等问题。在Java生态中,Thumbnailator库以其简洁的API和良好的默认处理,成为实现缩放、裁剪、水印等操作的利器。特别是在用户头像生成、内容管理系统等应用场景中,结合异步处理与缓存策略,可以显著提升高并发下的服务性能与稳

weixin_34417183的博客 763

基于cat12和SPM12进行VBM&SBM数据分析笔记1——数据预处理

基于cat12数据分析基础教程笔记 今年是小编步入研究生生活的第一年,研究方向待定,但主要以磁共振成像为主,以后会不断地总结这方面的知识,涉及MRI扫描,数据分析基础方法理论,软件操作教程,文献阅读笔记总结等等,用来记录我的研究生三年学习过程。编写尽量简洁明了,通俗易懂,本就是小白,也能体会小白的痛。不过这也要谢谢一个人手动@小白(网名),是他教我要把自己所学的写下来,讲出来才能真正的做到输入和输出,查漏补缺。而cat12软件操作是我面临的第一个数据分析的训练,写的可能也不会非常到位,还望各位专业人士指出改

Sophia2023的博客 4万+

国科大《人工智能原理与算法》2021年期末试题+2024经验(2025指南)

2021年期末试题+24年复习指南

MatsumotoChrikk 2925

Java图片压缩处理---thumbnailator库

使用情况 当客户端显示大量图片时,经常由于图片过大短时间内加载不出来,这时我们需要在服务器对用户上传的图片进行简单的压缩处理。 添加依赖 <dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version> </dependency> 常用

weixin_40145819的博客 658

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

java压缩图片及Thumbnailator官网api

Thumbnailator的github地址 https://github.com/coobird/thumbnailator Thumbnialator的api文档 https://coobird.github.io/thumbnailator/javadoc/0.4.13

封神之路 2851

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Thumbnails

net.coobird.thumbnailator.Thumbnails; 针对次此图片处理开源功能几点心得: 处理图片相对较好:等比例缩放,加水印,旋转等。 Thumbnails给我的感觉就是比较耗内存。 还有就是Thumbnails在处理压缩png图片质量时无效,这个有待优化 jvm设置到1200MB都能造成内存溢出,所以当时我放弃使用它,沿用原生的图片 处理ima...

锡均的博客 870

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found webp

net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found webp

pingfanblog 2223

springboot整合thumbnailator实现图片压缩

前言 最近由于首页产品列表图片显示太慢,经过研究发现是用户上传的图片太大。 针对这个问题,想到的解决方案是: 1、 产品上传时,限定图片上传大小不超过2m 2、 上传成功后将产品图片进行压缩,但是保留原图片,压缩后的图片名称添加后缀”-thumbnail” 3、 对已经上传的产品图片全部进行压缩 4、 前端只有在点击查看产品大图时显示原图,其他情况均显示缩略图 实现 根据需求,找到的解决方法是使用net.coobird.thumbnailator依赖包,实现图片压缩和将指定目录下的图片全部压

The码Maker的博客 900

【工作点滴】——thumbnailator实现图片的压缩和裁切

我们在工作中常常会遇到图片处理的功能。有很多的工具类都可以实现。今天给大家推荐一个特别简单好用的类——Thumbnailator。Thumbnailator是一个优秀的图片处理的开源Java类库,用起来十分简单。下面跟大家介绍一下他的使用方法。 一、引jar包 1.  jar包下载地址 2.  maven引入jar包 net.coobird thumbnail

Winter--王大梅 4990

Java开源图片框架Thumbnailator图片处理

jar自己网上下载一下,maven的话添加依赖即可 net.coobird thumbnailator 0.4.8 package com.xqx; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOEx...

kabcko的博客 1262

Thumbnailator库图片简单压缩处理

【代码】Thumbnailator库图片简单压缩处理。

weixin_43892790的博客 230

一句话解决Thumbnails缩略图工具PNG透明背景缩放后变黑问题

注意加红色的部分: Builder<BufferedImage> builder = Thumbnails.of(sourceImage).imageType(BufferedImage.TYPE_INT_ARGB).forceSize(width, height); builder.outputFormat("png").toFile...

applebomb的专栏 4670
上一篇: 初学操作系统,概念梳理(updating)
下一篇: 算法设计第三次作业
jakeonil
博客等级 码龄5年 1万+粉丝 60原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jakeonil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值