跳转至

ImageMagick

ImageMagick 是一款创建、编辑、合成、转换图像的命令行工具。支持格式超过 200 种,包括常见的 PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, SVG 等。功能包括调整,翻转,镜像(mirror),旋转,扭曲,修剪和变换图像,调整图像颜色,应用各种特殊效果,或绘制文本,线条,多边形,椭圆和贝塞尔曲线等。配合Linux shell工具,ImageMagic可以很方便地对大量图片做批量处理。支持在linux、mac、windows等多个平台使用。

官网:https://imagemagick.org/

软件仓库:https://github.com/ImageMagick/ImageMagick

使用文档:https://imagemagick.org/Usage/

安装

源码安装

$ git clone https://github.com/ImageMagick/ImageMagick
$ ./configure --prefix="path-to-install"
$ make
$ make install
安装之后多个命令均指向magick
magick
animate -> magick
compare -> magick
composite -> magick
conjure -> magick
convert -> magick
display -> magick
identify -> magick
import -> magick
magick-script -> magick
mogrify -> magick
montage -> magick
stream -> magick
集群调用
$ module load ImageMagick/7.0.8-63
# 查看manual
$ man magick

使用

格式转换

jpg 转成png 格式

$ convert foo.jpg foo.png

批量操作

将当前目录下所有的 jpg 图片转成 png

$ find ./ -name "*.jpg"|xargs -i basename {} .jpg|xargs -i convert {}.jpg {}.png

缩小图片尺寸

将图片 foo.jpg 生成宽高为原图宽高50%的缩略图 bar.jpg

$ convert -resize 50%x50%  -quality 70 -strip foo.jpg bar.jpg

解释:

  • -quality 70:降低缩略图的质量为 70,取值范围 1 ( 最低图像质量和最高压缩率 ) 到 100 ( 最高图像质量和最低压缩率 ),默认值根据输出格式有 75、92、100,选项适用于 JPEG / MIFF / PNG
  • -strip:让缩略图移除图片内嵌的所有配置文件,注释等信息,以减小文件大小。
  • -resize 50%x50%:定义输出的缩略图宽高为原图的 50% 。

批量操作

将当前目录下所有的 jpg 图片进行等比缩小

$ find ./ -name "*.jpg"|xargs -i basename {} .jpg|xargs -i convert -resize 50%x50% {}.jpg {}_50.jpg

裁剪图片

(50,50) 坐标开始,裁剪一个100⨉100 大小的图片(乘号用小写英文字母xyz的x就可以)

$ convert image.png -crop 100x100+50+50 foo.png
不指定位置,则会把大图片分割成100⨉100 的小图片,生成foo-0.png, foo-1.png, ……
$ convert image.png -crop 100x100 foo.png

裁剪到图像边缘

这个功能也可以叫去除图片的空白,就好像对文本去除空格一样,图片也可以去除空白的像素,以得到能容纳图像的最小图片。

$ convert  -trim foo.png bar.png

翻转

上下翻转:

$ convert -flip foo.png bar.png

左右翻转:

$ convert -flop foo.png bar.png

模糊

高斯模糊:

$ convert -blur 80 foo.jpg foo.png

单色

把图片变为黑白颜色:

$ convert -monochrome foo.png bar.png

油画效果

可用这个功能,把一张普通的图片,变成一张油画,效果非常的逼真

$ convert -paint 4 foo.png bar.png

旋转

把一张图片,旋转一定的角度。30 表示向右旋转30度,如果要向左旋转,度数就是负数。

$ convert -rotate 30 foo.png bar.png

炭笔效果

$ convert -charcoal 2 foo.png bar.png
形成炭笔或者说是铅笔画的效果。

参考:

我的ImageMagick使用心得

ImageMagick的基本使用

ImageMagick 简单介绍与案例

ImageMagick入门教程

本文阅读量  次
本站总访问量  次