使用缩略图,我可以使相同的高度和宽度的缩略图无论图像的大小
问题描述:
在Thumbnailator,我缩略图。使用缩略图,我可以使相同的高度和宽度的缩略图无论图像的大小
如果图像尺寸为400 * 300,如果我这样做以后的事,
Thumbnails.of(new File("original.jpg"))
.size(160, 160)
.toFile(new File("thumbnail.jpg"));
它创造的160 * 120的缩略图。
我想要的是如果我上传400 * 300图像,它将中心缩放,以便我将成为300 * 300,然后它将缩略图。
我经历了文档,即使我发表了同样的事情在那里评论,但没有运气。
答
听起来像是为sourceRegion
方法的工作,这可以用来指定它的缩略图应该产生的区域:
你的具体情况,你会想尝试以下:
Thumbnails.of(new File("original.jpg"))
.sourceRegion(Positions.CENTER, 300, 300)
.size(160, 160)
.toFile(new File("thumbnail.jpg"));
上面的代码将:
- 打开
original.jpg
, - 使用原始图像的*300×300区域,和
- 调整该区域的160×160的缩略图,和
- 写入
thumbnail.jpg
。
可以通过将Positions.CENTER
更改为例如Positions.TOP_LEFT
来选择原始图像的不同区域。有关预定义选项的完整列表,请参阅Positions
enum的文档。
以下是一些链接,这可能是感兴趣的Thumbnailator API文档:
-
sourceRegion(int, int, int, int)
方法- 用于指定从中创建缩略图的确切区域。
-
sourceRegion(Position, int, int)
方法- 用途使用
Position
对象作为示例中所示代码以上相对定位。
- 用途使用
-
sourceRegion(Rectangle)
方法- 用于指定从中创建的缩略图的精确区域,使用
java.awt.Rectangle
对象。
- 用于指定从中创建的缩略图的精确区域,使用
-
Position
枚举- 提供了可以用于指定从中创建的缩略图的区域的相对位置预先定义的位置上。
免责声明:我是Thumbnailator库的维护者。
我删除了对“google thumbnailator”的引用,因为Thumbnailator库与Google没有任何关系。这只是一个托管在Google Project Hosting上的项目。 此外,为了让您知道,我没有注意到您已经在Thumbnailator项目的Wiki文档页面上发布了一个问题,因为Google最近关闭了可能会带来此问题的更新通知功能我的注意力。 – coobird 2012-03-14 15:50:10
我很高兴看到这个答复..!现在我正在用getSubimage()做BufferImage ...! 它的工作,但很高兴有内置的东西...! ;) 真的很棒的图书馆...!如此容易使用...! :) – KuKu 2012-03-15 17:13:32
很高兴你发现图书馆有用:) – coobird 2012-03-17 03:48:52