我维持缩略图器,一个 Java 缩略图生成库,它提供了通过易于使用的工具调整图像大小并进行一些简单的图像操作的方法流畅的API.
Thumbnailator 提供的功能之一是Canvas可以对生成的缩略图进行裁剪和填充(或信箱)的过滤器。
填充图像
例如,使用Canvas
过滤器填充图像可以通过以下方式实现:
Thumbnails.of("path/to/image.jpg")
.size(150, 150)
.addFilter(new Canvas(150, 150, Positions.CENTER, Color.blue))
.toFile("path/to/padded-image.jpg");
上述内容将:
- 拍摄原始图像并通过以下命令将其缩小到 150 x 150 以内
size
method.
- 然后,由指定的附加过滤步骤
addFilter
方法将添加蓝色填充(使用Color.blue
) 得到尺寸为 150 x 150 的最终图像。
- 将生成的缩略图保存到
path/to/padded-image.jpg
.
在肖像图片上使用上述代码会产生以下结果:
(source: coobird.net)
裁剪图像
使用裁剪图像Canvas
过滤可以通过以下方式实现:
Thumbnails.of("path/to/image.jpg")
.size(150, 150)
.addFilter(new Canvas(100, 100, Positions.TOP_RIGHT, true))
.toFile("path/to/cropped-image.jpg");
上面的代码将:
- 拍摄原始图像并通过以下命令将其缩小到 150 x 150 以内
size
method.
- 然后,额外的过滤步骤将从调整大小的图像的右上角裁剪出 100 x 100 的区域。 (这
true
中存在的论点Canvas
构造函数调用指示如果图像大于指定尺寸,则应裁剪图像。)
- 将生成的缩略图保存到
path/to/cropped-image.jpg
.
运行上述代码的示例如下:
(source: coobird.net)
目前有一些功能请求要求使裁剪成为 Thumbnailator API 中更不可或缺的一部分,因此将来我计划添加一个crop
方法应该减少调用的需要addFilter
大多数情况下的方法。