使用Thumbnailator,无论图像大小如何,我都能制作相同高度和宽度的缩略图
在Thumbnailator中 ,我正在制作缩略图。
如果图像尺寸是400 * 300,如果我做了以下事情,
Thumbnails.of(new File("original.jpg")) .size(160, 160) .toFile(new File("thumbnail.jpg"));
它创建了160 * 120的缩略图。
我想要的是如果我上传400 * 300图像,它将中心缩放,以便我将成为300 * 300然后它将缩略图。
我浏览了文档,甚至我在评论中发布了相同的内容,但没有运气。
听起来像sourceRegion
方法的工作,可用于指定应从中生成缩略图的区域:
使用Thumbnailator中的 sourceRegion code>方法创建缩略图的插图http://wiki.thumbnailator.googlecode.com/hg/img/features/sourceregion.png
在您的特定情况下,您将尝试以下操作:
Thumbnails.of(new File("original.jpg")) .sourceRegion(Positions.CENTER, 300, 300) .size(160, 160) .toFile(new File("thumbnail.jpg"));
上面的代码将:
- 打开
original.jpg
, - 使用原始图像的中央300 x 300区域,和
- 将该区域的大小调整为160 x 160缩略图,然后
- 写入
thumbnail.jpg
。
通过将Positions.CENTER
更改为例如Positions.TOP_LEFT
,可以选择原始图像的不同区域。 有关预定义选项的完整列表,请查看Positions
枚举的文档。
以下是可能感兴趣的Thumbnailator API文档的一些链接:
-
sourceRegion(int, int, int, int)
方法- 用于指定从中创建缩略图的确切区域。
-
sourceRegion(Position, int, int)
方法- 使用
Position
对象进行相对定位,如上面的示例代码所示。
- 使用
-
sourceRegion(Rectangle)
方法- 用于使用
java.awt.Rectangle
对象指定创建缩略图的确切区域。
- 用于使用
-
Position
枚举- 提供预定义位置,可用于指定创建缩略图的区域的相对位置。
免责声明:我是Thumbnailator库的维护者。