`
sheungxin
  • 浏览: 105320 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

图像缩略图的Java类库Thumbnailator

    博客分类:
  • Java
阅读更多
今天经同事介绍了一款java图像缩略图类库Thumbnailator,尝试了下,效果还不错,使用也比较方便,收藏一下。github地址:https://github.com/coobird/thumbnailator,简介和使用范例:https://www.oschina.net/question/76860_25758?sort=default&p=2

BufferedImage image=ImageIO.read(new File("d://12.jpg"));
//按比例、图片质量缩放		Thumbnails.of(image).scale(0.5f).outputQuality(0.5).toFile("d://14.jpg");
//指定宽高等比缩放:指定的宽高可能不成比例,会依据宽或高调整尺寸,到底依据宽,还是高,采用最小缩放原则
Thumbnails.of(image).size(100, 250).toFile("d://13.jpg");

之前对于等比缩放在具体场景中的使用还存在疑问,如何去确定最终的尺寸?ckfinder实现了图片的等比压缩,研究了下其实现。在ckfinder中设置了imgWidth、imgHeight、imgQuality,最大宽度、高度、图片质量,以下方法去计算最终尺寸:
private static Dimension createThumbDimension(BufferedImage image, int maxWidth, int maxHeight)
	Dimension dimension = new Dimension();
	if (image.getWidth() >= image.getHeight()) {
		if (image.getWidth() >= maxWidth) {
			dimension.width = maxWidth;
			dimension.height = Math.round(maxWidth / image.getWidth() * image.getHeight());
		}else {
			dimension.height = image.getHeight();
			dimension.width = image.getWidth();
		}
	}else if (image.getHeight() >= maxHeight) {
	      dimension.height = maxHeight;
	      dimension.width = Math.round(maxHeight / image.getHeight() * image.getWidth());
	}else {
	      dimension.height = image.getHeight();
	      dimension.width = image.getWidth();
	}
	return dimension;
}
从上述代码可以看出,找出宽、高较大的值使其等于配置中的最大值(大于配置最大值的情况),再按照缩放比例调整对应的宽或者高。确定了尺寸方案,我们就可以结合thumbnailator实现自己的图片压缩。
分享到:
评论

相关推荐

    Thumbnailator.jar

    Thumbnailator.jar 是一个Java类库,专为生成图像缩略图而设计,简化了开发者在Java应用程序中创建图片缩略图的过程。这个库以其易用性和高效性著称,允许开发者通过简洁的代码就能实现复杂的图像处理任务。下面将...

    java图片压缩文件大小thumbnailator-0.4.8.jar.zip

    java图片压缩文件thumbnailator-0.4.8.jar.zip Thumbnailator是一个用来对图像进行处理以及缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。有了它我们就不用在费...

    thumbnailator-0.4.14.jar

    Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片缩略图

    thumbnailator-0.4.8.jar

    Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片缩略图

    thumbnailator-0.4.17.jar

    Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片缩略图

    thumbnailator-0.4.20.jar

    Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片缩略图

    Thumbnailator.rar

    Thumbnailator 是一个强大的 Java 类库,专为处理图像而设计,尤其在生成图像缩略图、裁剪、旋转以及添加水印等方面表现出色。它的主要优势在于提供了简洁易用的 API,使得开发者能够轻松地集成到自己的项目中,无论...

    thumbnailator

    `Thumbnailator` 是一个功能强大的 Java 类库,专为简化和优化图像缩略图生成而设计。这个库以其易用性和灵活性著称,使得开发者无需深入了解图像处理的复杂性,就能快速高效地创建各种尺寸的图片缩略图。以下是对 `...

    Thumbnailator 0.4.8.jar

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

    thumbnailator-0.4.7

    总结起来,"thumbnailator-0.4.7"是一个强大且易用的Java类库,专注于图像缩略图的生成。无论你是开发一个图片分享平台,还是需要在应用程序中快速处理图像,这个库都能提供简洁、高效的解决方案。同时,提供的完整...

    thumbnailator-0.4.7.jar

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

    thumbnailator-0.4.8.zip

    Thumbnailator 是一个优秀的图片处理的 Google 开源 Java 类库,专门用来生成图像缩略图的,通过很简单的 API 调用即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。两三行代码就能够从现有图片生成处理...

    thumbnailator-0.4.7-all.jar

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

    thumbnailator-0.4.20.zip

    Thumbnailator 是一个优秀的图片处理的 Google 开源 Java 类库,专门用来生成图像缩略图的,通过很简单的 API 调用即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。两三行代码就能够从现有图片生成处理...

    thumbnailator-0.4.8 图片压缩工具类及调用方法

    `thumbnailator-0.4.8` 是一个用于图片处理的Java库,专注于图像缩略图的生成。这个库提供了一种简单而高效的方式来创建、调整和转换图像,特别是对于那些需要在应用程序中进行批量图片处理的情况。在这个压缩包中,...

    java图片浏览管理系统

    7. **图片预览技术**:系统可能会利用thumbnailator或其他类似的库来生成图片缩略图,提供快速预览的功能。 8. **文件遍历与目录树结构**:系统可能需要展示图片所在的文件夹结构,这就需要用到递归遍历文件夹的...

    图片压缩类

    图片压缩的主要目标是减少文件大小,从而节省存储空间和提高传输速度,而“图片压缩类”通常是指编程语言中用于处理图片压缩的特定类库或模块。以下是对图片压缩技术的详细介绍: 1. 图片压缩原理: 图片压缩分为...

    PhotoManager:一个旨在研究处理大量图片的不同方法的项目

    3. 图片缩略图生成:在显示大量图片时,生成缩略图可以提高加载速度。Java的Thumbnailator库可以方便地实现这一功能,同时支持多种格式的图片。 4. 图片的排序与检索:根据日期、大小、文件名等多种条件对图片进行...

Global site tag (gtag.js) - Google Analytics