零、说明

文档

ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件,其大多数功能的使用都来源于命令行工具。在python2还有对应的库PythonMagick。参考资料:
ImageMagick官网
中文官网
中文教程

下载

ImageMagick - Download
搜索关键词“portable”,可以下载免安装的便携版
image.png

一、convert(mogrify)

mogrify功能与convert一样,但是对原文件原地操作

如果直接写convert、mogrify等命令不生效,可以加一个magick前缀

裁剪

image.png

  1. magick convert -crop 93x93+0+0 xmut-logo.png logo.png

93x93+0+0:widthxheight+dx+dy
clipboard.png

改变图片格式

convert 要转换的图片名 转换后的名字

注意也能转成txt格式就是用一个文本文件把数据标记出来了
对于不支持的格式,好像就维持原文件编码了。

支持特殊格式命名,比如可以输出0000.jpg~0003.jpg

convert *.jpg %04d.jpg

长宽缩放

convert 1.png -resize 300 2.png       :将一张图片等比例把宽度变为300
convert 1.png -resize x300 2.png      :高度变为300 
mogrify -resize 300 1.png             :原地操作
convert 1.png -resize 50% 2.png       :缩放一半

pdf转图片

convert -density 100 LargeSample.pdf split/page-%0d.jpg

density设为100是正常质量,默认好像只有50的质量。可以设置为200、300、400等更高的质量参数。
(注意参数顺序有影响,待转换图片要写到-density后面)

eps批量转png,并遵循原文件名

mogrify -density 120 -format png *.eps

这段代码的缺陷是处理不了透明通道

其他

-trim:裁剪图像四周空白区域;
-transparent color:去除图像中指定的颜色;
-density geometry:设定图像的 DPI 值,若不明 DPI 值的概念,可参考《有关pt, px及DPI的知识》;
-antialias:让图像具有抗锯齿的效果;
-quality:图像压缩等级。

二、identify

获取宽高信息

资料

> identify -format "%f,%w,%h\n" *.jpg > filelist.csv
> identify -format "%f, width=%w, height=%h\n" *.jpg

> identify -format "%f,%w,%h\n" *.jpg *.png
a.jpg,870,946
b.jpg,298,219
bd.jpg,3138,1877
bean1.jpg,1252,1252

三、eps相关业务

将eps批量导出为透明png图片

使用ImageMagick将eps批量导出为透明png图片运维代号4101的专栏-CSDN博客

mogrify -density 120 -format png *.eps
mogrify -transparent white *.png

将工作目录下的所有eps导出为png图片,并且将白色背景变成透明背景。

  1. -density:控制输出的分辨率,这里-density的单位与illustrator导出png的ppi相同,默认值为72。为了防止图片太小,这里进行一定的放大,设成120:convert -density 120 a.eps a.png,输出的a.png原尺寸为132×26的话,现在放大120/72,变为220×43。注意这里的参数调用顺序,-density 120不能放到a.eps后面。
  2. -transparent white可以把白色背景变透明:convert -transparent white a.png a.png
  3. 如果要批量将eps转为png,convert的导出名称规则是采用数字自动编号,无法维持原文件名。使用*作为导出通配符会报错,只能使用%02d等数字格式。例如: