使用Thumbnailator,无论图像大小如何,我都可以制作具有相同高度和宽度的缩略图

KuK*_*uKu 4 java image-processing thumbnails

Thumbnailator中,我正在制作缩略图.

如果图像尺寸为400*300,如果我做了以下事情,

Thumbnails.of(new File("original.jpg"))
        .size(160, 160)
        .toFile(new File("thumbnail.jpg"));
Run Code Online (Sandbox Code Playgroud)

它创建了160*120的缩略图.

我想要的是如果我上传400*300图像,它将居中缩放,这样我将成为300*300然后它将缩略图.

我浏览了文档,甚至我在评论中发布了相同的内容,但没有运气.

coo*_*ird 10

听起来像是sourceRegion方法的工作,可用于指定应从中生成缩略图的区域:

使用Thumbnailator中的<code> 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"));
Run Code Online (Sandbox Code Playgroud)

上面的代码将:

  1. 打开original.jpg,
  2. 使用原始图像的中央300 x 300区域,和
  3. 将该区域的大小调整为160 x 160缩略图,然后
  4. 写给thumbnail.jpg.

Positions.CENTER例如,可以通过改变来选择原始图像的不同区域Positions.TOP_LEFT.有关预定义选项的完整列表,请查看Positions枚举的文档.


以下是可能感兴趣的Thumbnailator API文档的一些链接:


免责声明:我是Thumbnailator库的维护者.