php下尝试使用GraphicsMagick的缩略图功能
php  /  管理员 发布于 7年前   180
现在更看重效率,所以本文就以GraphicsMagick为例来说说: 对于PHPer来说,有两种使用GraphicsMagick的方式: 1:使用PECL Gmagick扩展。 PECL扩展的方式我并不喜欢,一来PECL代码Bug多多,二来PECL扩展的实现,代码写起来很罗嗦:比如缩放一个GIF动画图片,如果你用命令行的方式,一句话就搞定,而用PECL扩展的话,还得先算动画有几帧,再循环处理,很麻烦。所以说我更倾向于使用命令行的方式,虽然命令行操作听起来很“重”,但如果建立若干台图片服务器,通过Gearman连接起来,其实很是很有弹性的。 下面我们就以GraphicsMagick为例,采用命令行的方式来看看如何使用缩略图功能: 先上一个原始图片(input.jpg:160x120),以后的各个例子都会用到它: BTW:列位看官现在可以咽口水了。 缩略图1 gm convert input.jpg -thumbnail '100x100' output_1.jpg 实际生成的图片大小是:100x75,也就是说说按此命令,会保持图片比例不变生成缩略图。这样很不错,但是有一个潜在的问题:我们不能简单明了的知道图片的最终大小,结果是前端显示的时候,无法设置img标签的width和height属性,如果我没记错的话,一般是推荐设定width和height属性的,否则浏览器渲染起来可能会稍稍慢一点。 缩略图2 gm convert input.jpg -thumbnail '100x100!' output_2.jpg 这次实际生成的图片大小按定义来,但图片变形了,有时候这是不能接受的。 gm convert input.jpg -thumbnail '100x100^' \ 这次不仅保证了大小,还保证了比例。不过图片经过了裁剪。 缩略图4 gm convert input.jpg -thumbnail '100x100' \ 这次不仅保证了大小,还保证了比例,同时没有对图片进行任何裁剪,多余的部分按指定颜色进行填充。 缩略图5 gm convert input.jpg -thumbnail '10000@' \ 这次保证了大小和比例,其中的10000就是100x100的乘积,同时在填充和裁剪之间做了一个平衡。 补充:如果想让用户手动裁剪头片的话,imgAreaSelect是个好选择。
2:使用GraphicsMagick命令行。
缩略图3
-gravity center -extent 100x100 output_3.jpg
-background gray -gravity center -extent 100x100 output_4.jpg
-background gray -gravity center -extent 100x100 output_5.jpg
明白了以上几个例子,缩略图基本就能通吃了,肯定有一种会适合你的需求。GraphicsMagick的资料非常少,但好消息是GraphicsMagick和ImageMagick的用法基本兼容,所以你可以通过ImageMagick的资料来套用。您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号