`
gaojingsong
  • 浏览: 1210885 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【JAVA之缩略图Thumbnailator】

阅读更多

 Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。

有了这玩意,就不用在费心思使用Image I/O API,Java 2D API等等来生成缩略图了。

 

Thumbnailator是一个用java生成高质量缩略图的第三方库,可以用来

1.生成缩率图;

2.添加水印;

3.图片旋转;

4.图片大小缩放;

5.图片压缩;

 

 

1.对图片尺寸进行重设

 

/**

 * 重设图片尺寸

 * @throws IOException

 */

    Thumbnails.of(new File("原图.jpg"))

              .size(160, 160)

              .toFile(new File("新图.jpg"));

 

 

 

对文件夹下所有图片生成缩略图

Thumbnails.of(new File("path/to/directory")

.listFiles())

.size(640, 480)

.outputFormat("jpg")

.toFiles(Rename.PREFIX_DOT_THUMBNAIL);

 

 

 

Thumbnails.of("原图文件的路径") 

        .scale(1f) 

        .outputQuality(0.5f) 

        .toFile("压缩后文件的路径");

 

其中的scale是可以指定图片的大小,值在0到1之间,1f就是原图大小,0.5就是原图的一半大小,这里的大小是指图片的长宽。

而outputQuality是图片的质量,值也是在0到1,越接近于1质量越好,越接近于0质量越差。

 

 

Create a thumbnail from an image file

Thumbnails.of(new File("original.jpg"))
        .size(160, 160)
        .toFile(new File("thumbnail.jpg"));

In this example, the image from original.jpg is resized, and then saved to thumbnail.jpg.

Alternatively, Thumbnailator will accept file names as a String. Using File objects to specify image files is not required:

Thumbnails.of("original.jpg")
        .size(160, 160)
        .toFile("thumbnail.jpg");

This form can be useful when writing quick prototype code, or when Thumbnailator is being used from scripting languages.

Create a thumbnail with rotation and a watermark

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"));

In this example, the image from original.jpg is resized, then rotated to clockwise by 90 degrees, then a watermark is placed at the bottom right-hand corner which is half transparent, then is saved to image-with-watermark.jpg with 80% compression quality settings.

Create a thumbnail and write to an OutputStream

OutputStream os = ...;
		
Thumbnails.of("large-picture.jpg")
        .size(200, 200)
        .outputFormat("png")
        .toOutputStream(os);

In this example, an image from the file large-picture.jpg is resized to a maximum dimension of 200 x 200 (maintaining the aspect ratio of the original image) and writes the that to the specifiedOutputStream as a PNG image.

Creating fixed-size thumbnails

BufferedImage originalImage = ImageIO.read(new File("original.png"));

BufferedImage thumbnail = Thumbnails.of(originalImage)
        .size(200, 200)
        .asBufferedImage();

The above code takes an image in originalImage and creates a 200 pixel by 200 pixel thumbnail using and stores the result in thumbnail.

Scaling an image by a given factor

BufferedImage originalImage = ImageIO.read(new File("original.png"));

BufferedImage thumbnail = Thumbnails.of(originalImage)
        .scale(0.25)
        .asBufferedImage();

The above code takes the image in originalImage and creates a thumbnail that is 25% of the original image, and uses the default scaling technique in order to make the thumbnail which is stored in thumbnail.

Rotating an image when creating a thumbnail

BufferedImage originalImage = ImageIO.read(new File("original.jpg"));

BufferedImage thumbnail = Thumbnails.of(originalImage)
        .size(200, 200)
        .rotate(90)
        .asBufferedImage();

The above code takes the original image and creates a thumbnail which is rotated clockwise by 90 degrees.

Creating a thumbnail with a watermark

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();

As shown, a watermark can be added to an thumbnail by calling the watermark method.

The positioning can be selected from the Positions enum.

The opaqueness (or conversely, transparency) of the thumbnail can be adjusted by changing the last argument, where 0.0f being the thumbnail is completely transparent, and 1.0f being the watermark is completely opaque.

Writing thumbnails to a specific directory

File destinationDir = new File("path/to/output");

Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
        .size(200, 200)
        .toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);

This example will take the source images, and write the thumbnails them as files to destinationDir(path/to/output directory) while renaming them with thumbnail. prepended to the file names.

Therefore, the thumbnails will be written as files in:

  • path/to/output/thumbnail.apple.jpg
  • path/to/output/thumbnail.banana.jpg
  • path/to/output/thumbnail.cherry.jpg

It's also possible to preserve the original filename while writing to a specified directory:

File destinationDir = new File("path/to/output");

Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
        .size(200, 200)
        .toFiles(destinationDir, Rename.NO_CHANGE);

In the above code, the thumbnails will be written to:

  • path/to/output/apple.jpg
  • path/to/output/banana.jpg
  • path/to/output/cherry.jpg
0
0
分享到:
评论

相关推荐

    Java开源图片框架thumbnailator-0.4.8.jar

    **Java开源图片框架thumbnailator-0.4.8.jar** 是一个专为Java开发者设计的高效、高质量的图片处理库,特别适用于生成缩略图。这个框架提供了丰富的功能,使得在Java应用程序中处理图片变得更加简单。thumbnailator...

    Thumbnailator - Java 的缩略图生成库.zip

    Thumbnailator是一个 Java 的缩略图生成库。为什么选择 Thumbnailator?用 Java 制作高质量的缩略图可能是一项相当困难的任务。学习如何使用图像 I/O API、Java 2D API、图像处理、图像缩放技术......但不要害怕!...

    java缩略图jar包

    总的来说,“java缩略图jar包”(thumbnailator)是Java开发中创建和管理缩略图的高效工具,它的强大功能和简洁API降低了图像处理的门槛,使得开发者能够更加专注于业务逻辑,而不用过多关心底层的图像处理细节。...

    java处理图片,缩略图,添加水印,格式转换,Thumbnailator

    Thumbnailator库由Cedric Chabanois开发,它的主要目标是简化Java中的图像缩略图生成。以下是一些核心功能和知识点: 1. **创建缩略图**:Thumbnailator库提供了一个直观的API来创建缩略图。你可以通过指定宽度、...

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

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

    ThumbNailator缩略图生成实验

    【ThumbNailator缩略图生成实验】是一个基于JSP技术的项目,旨在演示如何处理用户上传的图像文件并生成高质量的缩略图。在这个实验中,我们将深入探讨JSP(JavaServer Pages)的核心概念,以及如何利用它来实现动态...

    thumbnailator java用于图片压缩 生成缩略图 添加水印等

    thumbnailator(包括jar包跟api) java用于图片压缩 生成缩略图 添加水印等 这是我见过最好的压缩工具了 使用方法: Thumbnails.of(new File("path/to/directory").listFiles()) .size(640, 480) .outputFormat(...

    Java缩略图生成库之Thumbnailator应用说明

    Thumbnailator 是一个专为 Java 平台设计的高效且易于使用的图像处理库,尤其适用于生成缩略图。该库通过其简洁的 API 设计,极大地简化了从图像文件和图像对象创建缩略图的过程。只需要几行代码,用户就可以轻松...

    Thumbnailator-0.2.6

    《Thumbnailator-0.2.6:便捷的Java缩略图生成库》 在数字图像处理领域,生成缩略图是一项常见的任务,特别是在网站开发、移动应用和图像管理软件中。"Thumbnailator-0.2.6"是一个专门用于生成缩略图的Java包,它为...

    thumbnailator:Thumbnailator-Java的缩略图生成库

    Thumbnailator是Java的缩略图生成库。 为什么选择Thumbnailator? 用Java制作高质量的缩略图可能是一项相当困难的任务。 学习如何使用图像I / O API,Java 2D API,图像处理,图像缩放技术,但不要担心! ...

    thumbnailator入门教程

    同时,`Java生成缩略图之Thumbnailator指定大小进行缩放_files`目录可能包含运行示例代码所需的资源文件。 总的来说,thumbnailator是一个强大的Java库,可以帮助开发者轻松实现图像处理任务,特别是生成高质量的...

    Thumbnailator.jar

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

    thumbnailator图片处理包JAVA

    "thumbnailator图片处理包JAVA"是一个专门为Java开发者设计的库,用于方便地创建、修改和转换图像,尤其是生成缩略图。thumbnailator以其高效、易用和灵活性著称,是许多Java项目中处理图像需求的理想选择。这个...

    PicService_java_thumbnailator_

    `thumbnailator`是一个轻量级的Java库,专门用于创建图片的缩略图和其他尺寸的图片,它提供了简单易用的API,可以方便地集成到任何Java应用程序中。 首先,我们需要了解`thumbnailator`库的基本使用。`...

    thumbnailator图片管理工具

    thumbnailator是一款开源的Java库,专为处理图像文件而设计,尤其是用于创建缩略图。它的主要功能是提供一个简单、高效且灵活的API,使得开发者能够快速地对图片进行裁剪、缩放、旋转以及其他各种操作。这款工具非常...

    thumbnailator-0.4.8和说明

    `thumbnailator-0.4.8` 是一个用于创建、修改和转换图像的Java库,尤其适用于生成缩略图。这个库提供了简单易用的API,使得开发者在处理图像时可以更加高效。在这个压缩包中,包含的是 `thumbnailator-0.4.8.jar` ...

    thumbnailator所需jar包.zip

    thumbnailator是一个非常流行的开源Java库,专为创建、修改和转换图像文件而设计,尤其在处理缩略图时表现出色。这个库简化了Java应用程序中进行图像处理的工作流程,提供了灵活且易于使用的API。 在Java开发中,...

    thumbnailator

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

    生成图片缩略图Jar包

    本文将详细介绍一个名为Thumbnailator的Java库,它是用于生成图片缩略图的强大工具,并讲解如何在项目中使用。 Thumbnailator是一个开源的Java库,专门设计用来创建、编辑和转换图像。它具有高度的灵活性和易用性...

    google图片处理工具thumbnailator-0.4.8.jar

    在这个领域,thumbnailator是一个备受青睐的Java库,它提供了简单易用的API,用于快速创建图片缩略图和其他图片处理工作。本文将详细介绍thumbnailator库及其在图片处理中的应用。 thumbnailator是日本开发者...

Global site tag (gtag.js) - Google Analytics