使用ImageMagick处理图片

Yiyan Tian
Nov 3, 2018 · 4 min read

简介

ImageMagick 是一个跨平台图像处理软件, 可以在命令行中完成绝大多数图像处理。

优势

ImageMagick 通过命令行调用, 在批量处理图片时有很大优势.

虽然 PhotoShop, 也默认提供了部分脚本, 但是其功能过于简单, 而且执行起来非常慢(感觉就像是在执行一个Action)

Install

可以访问 [ImageMagick](http://www.imagemagick.org/) 的官网, 获取安装包

[http://www.imagemagick.org/](http://www.imagemagick.org/)

在 Ubuntu 下安装

ImageMagick 没有提供 deb 安装包

在 Ubuntu 下, 可以使用 apt-get 来获取 imagemagick

sudo apt-get install imagemagick

使用

ImageMagick 官方提供了一些示例:

http://www.imagemagick.org/Usage/

生成文字图片

下面命令生成一张 TyyBlog 的文字图片

convert label:TyyBlog label.gif

简单的做一下修改:

- 字体大小: 72

- 背景色: lightblue

- 字体颜色: ‘#262a30’(接近于黑色)

- 字体: Ubuntu (这个字体只在 Ubuntu 下有, 其它系统换成别的字体就行)

- 图片格式: png

convert -background lightblue -fill ‘#262a30’ -font Ubuntu -pointsize 72 label:TyyBlog ImageMagick-text.png

> 颜色的格式 ImageMagick 除了常用的颜色名之外, 也支持RGB, Hex

> 关于颜色的详情, 可以翻阅 http://www.imagemagick.org/script/color.php

细心的小伙伴会发现, 中文会变成”??”

我们可以将文字放在文件里, 通过读取文件来做.

例如, 我们显示 “博主身高2米8” (不小心暴露了我的伟岸.)

新建一个名为 `fileText` 的文件, 存放文字.

需要注意的是, 文本编码必须使用 **无 BOM 的 UTF8**.

> Note: 因为 Ubuntu 字体并没有中文, 所以我们要换一个字体啦.

> 可以使用下面命令来查看都有哪些字体

> `convert -list font`

> 你也可以引入字体文件

这里, 我使用 Ubuntu 下 的 `AR-PL-UKai-CN`

> Note: 将文字放入文本之中, 也方便生成长文本的文字图片.

convert -background lightblue -fill ‘#262a30’ -font ‘AR-PL-UKai-CN’ -pointsize 72 label:@fileText ImageMagick-fileText.gif

实用例子

生成 网站的 favicon.ico 文件

制作好 Logo 之后, 将其保存为 `icon.png`

> Note: `favicon.ico` 在浏览器的标签页中显示, 作为网站的 icon

> 它通常由 16x16, 32x32, 48x48, 64x64 这四个尺寸的图片组成.

然后在同一目录下执行以下脚本:

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade