サムネイル画像生成などでよく行われる、短辺基準でリサイズして中央を正方形に切り抜く処理をImageMagickで行うためのサンプル。
CenterCropSample.java
package sandbox;
import java.io.File;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IMOperation;
public class CenterCropSample {
public static void main(String[] args) throws Exception {
File src = new File("c:/temp/src.jpg");
File dest = new File("c:/temp/dest.jpg");
int width = 200;
int height = 200;
ConvertCmd cmd = new ConvertCmd();
cmd.setSearchPath("C:\\Program Files (x86)\\ImageMagick-6.8.5-Q16");
IMOperation op = new IMOperation();
op.addImage(src.getAbsolutePath());
op.resize(width, height, '^');
op.gravity("center");
op.crop(width, height, 0, 0);
op.addImage(dest.getAbsolutePath());
System.out.println(op.toString());
cmd.run(op);
}
}
結果
c:\temp\src.jpg -resize 200x200^ -gravity center -crop 200x200+0+0 c:\temp\dest.jpg
(※dest.jpgが生成されます)