lau*_*ura 3 java image crop imagemagick jmagick
我正在寻找一个Java库来进行图像裁剪/调整大小.我曾计划使用jmagick,但自2009年以来似乎没有维护过.
这是最好用的库吗?有什么建议吗?!
编辑
我想要做的一件事是能够填充图像以调整大小以及裁剪它.即如果我有一个4x2的图像,并且我想使它成为一个正方形,我想使它成为4x4,每边都有黑色或白色填充.这在图像处理中是否有名称?它是任何库附带的功能吗?
coo*_*ird 19
我维护Thumbnailator,一个用于Java的缩略图生成库,它提供了调整图像大小的方法,并通过易于使用的流畅API进行一些简单的图像处理.
Thumbnailator提供的功能之一是Canvas可以对结果缩略图执行裁剪和填充(或letterboxing)的过滤器.
填充图像
例如,使用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");
Run Code Online (Sandbox Code Playgroud)
以上将:
size方法将其缩小到150 x 150以内.addFilter方法指定的附加过滤步骤将添加蓝色填充(使用Color.blue)以产生尺寸为150×150的最终图像.path/to/padded-image.jpg.在肖像照片上使用上述代码会产生以下结果:
填充图像http://coobird.net/img/so-8150276-padding.jpg
裁剪图像
使用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");
Run Code Online (Sandbox Code Playgroud)
上面的代码将:
size方法将其缩小到150 x 150以内.true存在的参数Canvas表示如果图像大于指定的尺寸,则应裁剪图像.)path/to/cropped-image.jpg.运行上述代码的示例如下:
裁剪图像http://coobird.net/img/so-8150276-cropping.jpg
目前有功能要求将裁剪作为Thumbnailator API的一个不可或缺的部分,因此将来我计划添加一个crop方法,该方法应该减少addFilter在大多数情况下调用该方法的需要.