Thumbnailator使用

一、图片缩放

来自original.jpg的图像被调整大小,然后保存到thumbnail.jpg

1、size(宽度, 高度),图片通过高度或宽度按比例缩小

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

2、scale(比例),通过指定比例缩放

Thumbnails.of("original.jpg")
        .scale(0.75)
        .toFile("thumbnail.jpg");

3、keepAspectRatio(false)是否按比例缩放,默认是按照比例缩放的

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

二、旋转

1、rotate(角度),正数:顺时针,负数:逆时针

Thumbnails.of("original.jpg")
        .rotate(90)
        .toFile("thumbnail.jpg");

三、水印

1、.watermark()添加水印

  • 可以从Positions枚举中选择定位
  • 可以通过更改最后一个参数来调整缩略图的不透明度(或相反地,透明度),其中0.0f是缩略图是完全透明的,而1.0f是水印是完全不透明的
Thumbnails.of("original.jpg")
        .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
        .outputQuality(0.8)
        .toFile("thumbnail.jpg");

四、创建缩略图并写入OutputStream

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

五、将缩略图写入特定目录

此示例将获取源图像,并将缩略图作为文件写入destinationDir(path / to / output目录),同时重命名它们,增加前置文件名。

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

Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
        .size(200, 200)
        .toFiles(destinationDir, Rename.PREFIX_DOT_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

地址

posted @ 2022-10-21 19:42  路暝月  阅读(42)  评论(0编辑  收藏  举报  来源