编程学习网 > 服务器 > 使用GraphicsMagick处理生成高清缩略图
2014
11-07

使用GraphicsMagick处理生成高清缩略图

GraphicsMagick号称图像处理领域的瑞士军刀,也称命令行版的Photoshop, 短小精悍的代码却提供了一个超棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88中图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。

通过使用OpenMP可是利用多线程进行图片处理,增强了通过扩展CPU提高处理能力。

GraphicsMagick可以再绝大多数的平台上使用,Linux、Mac、Windows都没有问题。

GraphicsMagick支持大图片的处理,并且已经做过GB级别的图像处理实验。GraphicsMagick能够动态的生成图片,特别适用于互联网的应用。可以用来处理调整尺寸、旋转、加亮、颜色调整、增加特效等方面。GaphicsMagick不仅支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、Ruby等的调用。事实上,GraphicsMagick是从 ImageMagick 5.5.2 分支出来的,但是它比ImageMagick更稳定、更快。目前很多大型网站的图片处理都用了GraphicsMagick,例如淘宝等网站。以下简单介绍一下GraphicsMagick的用法。

一、安装

从GraphicsMagick的官方网站http://www.graphicsmagick.org/下载最新版本,目前最新版为v1.3.17

我这里下载的是windows版本,双击exe文件安装完成。(如果是在linux下安装,直接输入sudo apt-get install GraphicsMagick 即可)

二、命令行使用方法

以下例子来源http://hi.baidu.com/thinkinginlamp/item/753d86383545d10fcfb9fe14

先上一个原始图片(input.jpg:160x120),以后的各个例子都会用到它:

afbcab646ebd46b5f63654ec

缩略图1

gm convert input.jpg -thumbnail '100x100' output_1.jpg

98ee6c81a1fc599dbd3e1ee8

实际生成的图片大小是:100x75,也就是说说按此命令,会保持图片比例不变生成缩略图。这样很不错,但是有一个潜在的问题:我们不能简单明了的知道图片的最终大小,结果是前端显示的时候,无法设置img标签的width和height属性,如果我没记错的话,一般是推荐设定width和height属性的,否则浏览器渲染起来可能会稍稍慢一点。

缩略图2

gm convert input.jpg -thumbnail '100x100!' output_2.jpg

a94e4134bcfc700b241f14e8

这次实际生成的图片大小按定义来,但图片变形了,有时候这是不能接受的。

缩略图3

gm convert input.jpg -thumbnail '100x100^' \

-gravity center -extent 100x100 output_3.jpg

d3c5a4c235e8925e0ff477e8

这次不仅保证了大小,还保证了比例。不过图片经过了裁剪。

缩略图4

gm convert input.jpg -thumbnail '100x100' \

-background gray -gravity center -extent 100x100 output_4.jpg

3358c93d45397b829e3d62e8

这次不仅保证了大小,还保证了比例,同时没有对图片进行任何裁剪,多余的部分按指定颜色进行填充。

缩略图5

gm convert input.jpg -thumbnail '10000@' \

-background gray -gravity center -extent 100x100 output_5.jpg

9940728b7ae6f957c9fc7ae8

这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。

明白了以上几个例子,缩略图基本就能通吃了,肯定有一种会适合你的需求。GraphicsMagick的资料非常少,但好消息是GraphicsMagick和ImageMagick的用法基本兼容,所以你可以通过ImageMagick的资料来套用。

更多的命令请看http://www.graphicsmagick.org/utilities.html

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取