常用的图片处理工具有gd,imagemagick,免备案空间,美国服务器,graphicsmagick等等。gd就是个阿斗,略过不提;imagemagick是目前最流行的图片处理工具,它的功能非常丰富;graphicsmagick的功能略逊于imagemagick,但是它的效率更强悍,就好比apache和nginx一样,一个功能更强,一个效率更胜。
现在更看重效率,所以本文就以graphicsmagick为例来说说:
对于phper来说,有两种使用graphicsmagick的方式:
1:使用pecl gmagick扩展。
2:使用graphicsmagick命令行。
pecl扩展的方式我并不喜欢,一来pecl代码bug多多,二来pecl扩展的实现,代码写起来很罗嗦:比如缩放一个gif动画图片,如果你用命令行的方式,一句话就搞定,而用pecl扩展的话,还得先算动画有几帧,再循环处理,很麻烦。所以说我更倾向于使用命令行的方式,虽然命令行操作听起来很“重”,但如果建立若干台图片服务器,通过gearman连接起来,其实很是很有弹性的。
下面我们就以graphicsmagick为例,采用命令行的方式来看看如何使用缩略图功能:
先上一个原始图片(input.jpg:160x120),以后的各个例子都会用到它:
这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。
明白了以上几个例子,缩略图基本就能通吃了,肯定有一种会适合你的需求。graphicsmagick的资料非常少,但好消息是graphicsmagick和imagemagick的用法基本兼容,所以你可以通过imagemagick的资料来套用。
补充:如果想让用户手动裁剪头片的话,imgareaselect是个好选择。,香港服务器
