一.ImageMagick介绍
ImageMagick是一个免费的创建、编辑、合成图片的软件,可以实现图片切割、颜色替换、图片缩略图、图片水印等各种效果。ImageMagick是免费开源软件,支持大多数操作系统,包括Linux、Windows操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。
二.ImageMagick快速入门
安装ImageMagick
到官网下载相应的安装包。
在安装过程中记得勾选Install legacy utilities(e.g. convert)选项。
配置环境变量
将ImageMagick安装目录设置到PATH系统变量中
打开命令行运行magick -help测试是否配置成功
使用ImageMagick实现旋转
ImageMagick图片处理命令的格式如下:
imagick deal_type origin_pic_path deal_param dest_pic_path
deal_type:图片处理类型。ImageMagick提供了几十种图片处理类型,包括:decorate(边框)、convert(转换)、montage(拼接)、animation(动画)等,你可以在Features and Capabilities查看更多图片处理类型。
origin_pic_path:源图片路径。
deal_param:处理参数。不同的图片处理类型有不同的处理参数。
dest_pic_path:目标图片路径。
运行下面的命令将图片顺时针旋转90度:
magick doraemon.jpg -rotate 90 doraemon_rotate.jpg
三.在Java中使用ImageMagick
开始前请先确认JDK、Maven正确安装:
引入依赖
IM4Java是ImageMagick的Java API包,它将Java代码转化成对ImageMagick的命令行调用。
org.im4java
im4java
1.4.0
调用IM4Java实现旋转
IM4Java的作用是将Java代码转成对ImageMagick的命令行调用,因此IM4Java API与ImageMagick的命令有一一对应的关系。
ImageMagick的图片处理类型(deal_type)对应xxxCmd,如:convert处理类型对应ConvertCmd,montage处理类型对应MontageCmd。
ImageMagick的图片处理参数(deal_param)对应IMOperation方法,如:-rotate 90参数对应operation.rotate(90d),-resize 900x600参数对应operation.resize(900,600)。
运行以下代码可以将图片顺时针旋转90度。
IMOperation operation = new IMOperation();
operation.addImage("C:\\Users\\Administrator\\Desktop\\imagemagick\\doraemon.jpg");
operation.rotate(90d);
operation.addImage("C:\\Users\\Administrator\\Desktop\\imagemagick\\doraemon_rotate.jpg");
ConvertCmd cmd = new ConvertCmd();
cmd.setSearchPath("C:\\Program Files\\ImageMagick-7.0.5-Q16"); //Windows需要设置,Linux不需要
cmd.run(operation);
运行程序后可以看到图片已经旋转90度。
四.参考资料
五.关键词
Java 图片处理 Java 图片处理解决方案 Java 图片加水印 Java 图片圆角 Java 图片裁切 Java 图片等比缩小 ImageMagick GraphicsMagick 区别 ImageMagick 旋转