2012-03-06 108 views
4

Thumbnailator,我缩略图。使用缩略图,我可以使相同的高度和宽度的缩略图无论图像的大小

如果图像尺寸为400 * 300,如果我这样做以后的事,

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

它创造的160 * 120的缩略图。

我想要的是如果我上传400 * 300图像,它将中心缩放,以便我将成为300 * 300,然后它将缩略图。

我经历了文档,即使我发表了同样的事情在那里评论,但没有运气。

+0

我删除了对“google thumbnailator”的引用,因为Thumbnailator库与Google没有任何关系。这只是一个托管在Google Project Hosting上的项目。 此外,为了让您知道,我没有注意到您已经在Thumbnailator项目的Wiki文档页面上发布了一个问题,因为Google最近关闭了可能会带来此问题的更新通知功能我的注意力。 – coobird 2012-03-14 15:50:10

+0

我很高兴看到这个答复..!现在我正在用getSubimage()做BufferImage ...! 它的工作,但很高兴有内置的东西...! ;) 真的很棒的图书馆...!如此容易使用...! :) – KuKu 2012-03-15 17:13:32

+0

很高兴你发现图书馆有用:) – coobird 2012-03-17 03:48:52

回答

9

听起来像是为sourceRegion方法的工作,这可以用来指定它的缩略图应该产生的区域:

Illustration of creating a thumbnail using the <code>sourceRegion</code> method in Thumbnailator 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")); 

上面的代码将:

  1. 打开original.jpg
  2. 使用原始图像的中央300×300区域,和
  3. 调整该区域的160×160的缩略图,和
  4. 写入thumbnail.jpg

可以通过将Positions.CENTER更改为例如Positions.TOP_LEFT来选择原始图像的不同区域。有关预定义选项的完整列表,请参阅Positions enum的文档。


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


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

+0

谢谢分享这个。它工作得很好 – db80 2014-11-19 11:35:22

+0

@ db80很高兴你发现这个有用:) – coobird 2014-11-19 11:59:12