ImageMagick 简介

ImageMagick 是一款功能强大且免费的用于图片处理开发的命令行工具,它支持 200 多种图片格式的读取和写入,包括 PNG,JPEG,GIF,TIFF,DPX,PDF,SVG 等。

ImageMagick 的主要功能包括调整图像大小,反转图像,镜像,旋转、扭曲、剪切和变换图像,调整图像颜色,应用多种特效,绘制文本、线条、多边形、椭圆和贝塞尔曲线等。

想要全面了解 ImageMagick 的功能可以参考以下网站:

本文只简单介绍 ImageMagick 制作动态图的功能。

安装

官方下载地址: http://www.imagemagick.org/script/download.php

Centos7 用户可以在官网下载最新版的 ImageMagick7 安装包并按照教程进行安装,也可以直接利用 yum 安装旧版的 ImageMagick6:

$ sudo yum install ImageMagick

Windows7 用户可在官方下载最新版本 ImageMagick7 安装包进行安装。

制作动态图

在 bash 和 bat 脚本下 convert 命令的用法相同,以 bash 为例:

# 将所有 la 开头的 jpg 文件制成名为 my.gif 的动态图,每帧间隔 30 ms,0 表示循环播放 
$ convert -delay 30 -loop 0 la*.jpg my.gif
# 为了方便,需要将 gif 图片改小
$ convert my.gif -coalesce temporary.gif
$ convert -size <original size> temporary.gif -resize 24x24 smaller.gif

下面给出一个制作动态图的 GMT5 脚本。

#!/bin/bash
R=70/150/10/60
J=M25c
B=10
PS=0china.ps
gmt psxy -J$J -R$R -T -K -Xc -Yc > $PS
for code in 11 12 13 14 15 21 22 23 31 32 33 34 35 36 37 41 42 43 44 45 46 50 51 52 53 54 61 62 63 64 65 71 91 92;
do
   declare -i red=$RANDOM*256/32768
   declare -i green=$RANDOM*256/32768
   declare -i blue=$RANDOM*256/32768
   gmt pscoast -R$R -J$J -ECN.$code+p1p+g$red/$green/$blue -K -O >> $PS
   cp $PS $code.ps
   gmt psxy -R$R -J$J -T -O >> $code.ps
done
gmt psxy -R$R -J$J -T -O >> $PS
gmt psconvert -P -E100 *.ps
convert -delay 30 -loop 0 *.jpg china.gif
rm gmt.* *.ps *.jpg

效果见 中国省份动态绘制图:

中国省份动态绘制图

参考文献