ImageMagick简介
ImageMagick 是什么?
根据ImageMagick官网描述:
ImageMagick 是一个免费软件(Apache 2.0 许可),它作为可立即运行的二进制分布,也提供了源代码。你可以在开源或专有应用程序中使用、复制、修改和分布。
源代码仓库: https://github.com/ImageMagick/ImageMagick.
你可以使用 ImageMagick® 来创建、编辑、合成或转换数字图像。 它可以读取和写入各种格式(超过 200 种)的图像,包括 PNG、JPEG、GIF、WebP、HEIC、SVG、PDF、DPX、EXR 和 TIFF 等。 ImageMagick 可以调整大小、翻转、镜像、旋转、扭曲、剪切和变换图像,调整图像颜色,应用各种特殊效果,或绘制文本、线条、多边形、椭圆和贝塞尔曲线。
那么使用它的场合是什么呢?或者说ImageMagick的设计意图是什么呢?
根据ImageMagick官网范例中的描述:
ImageMagick 是为图像的批处理而设计的。也就是说,它允许你在脚本(shell、DOS、Perl、PHP 等)中组合图像处理操作,使这些操作可以批量应用于更多图像,或者作为其他工具的子系统,例如Web 应用程序、视频处理工具、全景图生成器等等。它并不是一个有图形界面的图像编辑器。
首先,ImageMagick 是一个从图像到图像的转换器。这就是它最初的设计目的。也就是说,它会将几乎任何格式的图像(如果有不能的请告诉我们)转换为任何其他图像格式。
但它也是一个图像处理算法库。你可以通过命令行和 shell/DOS 脚本(正如这页演示示例)访问它们;也可以通过大量编程语言(如 C、C++、Perl、Ruby、PHP 等),请参阅:ImageMagick API。
速度从来都不是 ImageMagick 的主要特征,它更强调生成图像的质量。但这并不是说它不能在合理的时间内转换图像。它只是没有令人眼花缭乱的快。因此,ImageMagick 执行某些处理操作的速度可能很慢,尤其是在尝试将图像压缩为容量有限的图像格式时。
ImageMagick 主要关注矩形像素点阵形式的图像(通常称为“光栅”)。但也会处理“矢量”图像格式,如 Postscript 或 PDF,而代价是在加载时将这些图像转换为光栅,并在保存时在光栅周围生成 vector image wrapper。因此,在使用默认设置时,矢量图像通常处理得不好。但是,可以使用特定选项来改善这种情况。请参阅:A word about vector image formats。
安装ImageMagick
在官网下载页面进行下载。
我这里选择的是Windows版:
然后运行安装程序(考虑到之后可能会用到C的API,所以我安装时也勾选了“安装C和C++的头文件与库”)
(可以留意,第二选项指定将程序加入系统的Path环境变量中)
安装好后可以看到:
由于exe的目录(C:\Program Files\ImageMagick-6.9.12-Q16-HDRI)已经被加入了系统的Path环境变量中,所以可以直接在cmd中访问,比如输入convert
:
试用1:使用命令行转换一个图像格式
在cmd中输入:
convert "D:/Temp/test.png" "D:/Temp/test.jpg"
将会把图片格式从png转为jpg:
试用2:使用界面转换一个图像格式
虽然官网上说ImageMagick主要被设计通过命令行或脚本执行的,但是我看到安装的时候也有一个图形界面(imdisplay.exe)快捷方式被放在了桌面上。
通过简单的菜单命令Open以及Save As也能完成转换操作。
看来简单的操作可以直接用此图形界面去运行而不必写代码了。