【转载】尝试使用GraphicsMagick的缩略图功能
原文地址:http://hi.baidu.com/thinkinginlamp/blog/item/4b61e9241f08820f4c088d95.html
欢迎访问我的新主页:http://huoding.com/
作者:老王 现在,对一个Web程序员来说,图像处理已经属于必会知识之一了。且不说Flickr,Yupoo等专业图片分享网站,就算是一个和图片分享不沾边的网站,也会用到很多图片处理的功能,比如说:用户上传头像,然后自动生成缩略图。 常用的图片处理工具有GD,ImageMagick,GraphicsMagick等等。GD就是个阿斗,略过不提;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,就好比Apache和Nginx一样,一个功能更强,一个效率更胜。 现在更看重效率,所以本文就以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的乘积,同时在填充和裁剪之间做了一个平衡。 明白了以上几个例子,缩略图基本就能通吃了,肯定有一种会适合你的需求。GraphicsMagick的资料非常少,但好消息是GraphicsMagick和ImageMagick的用法基本兼容,所以你可以通过ImageMagick的资料来套用。 补充:如果想让用户手动裁剪头片的话,imgAreaSelect是个好选择。 参考链接: http://www.imagemagick.org/Usage/thumbnails/ |
原文地址:http://hi.baidu.com/thinkinginlamp/blog/item/4b61e9241f08820f4c088d95.html
转载于:https://www.cnblogs.com/ainiaa/archive/2011/04/02/2003185.html
【转载】尝试使用GraphicsMagick的缩略图功能相关推荐
- oye pandora_我尝试了Pandora出色的功能优先级排序方法。 这是我学到的。
oye pandora by Josh Temple 通过乔什·坦普尔 我尝试了Pandora出色的功能优先级排序方法. 这是我学到的. (I tried Pandora's brilliant me ...
- php中上传图片怎么显示出来,PHP上传图片类显示缩略图功能
有缩略图功能 但是 感觉不全面,而且有点问题,继续学习,将来以后修改下 /** * Created by PhpStorm. * User: Administrator * Date: 2016/6/ ...
- dede图片上传php,织梦cms增加栏目(栏目图片)上传缩略图功能
很早之前使用DedeCMS的时候,栏目设置里还有一个栏目图片的选项,后来DedeCMS更新到5.7版本之后,这个很实用的功能竟然没取消了,导致很多时候我们在用DedeCMS建站,处理栏目显示样式这一块 ...
- 技术分享| 浅谈IM 产品中的“缩略图”功能
在 IM 产品中,发送图片是产品的一个基本功能,如何生成缩略图以及如何显示缩略图都是该模块的组成部分,本文就如何显示缩略图从产品设计的角度去阐述. 从产品上来确认该功能如何去设计,最稳妥的方式就是模仿 ...
- javascript实现的有缩略图功能的幻灯片切换效果
不久前写了一个简单的图片效果,没想到那么快就要用到项目中,所以功能方面要丰富一下: 主要改进: 1# 用圆点代替之前简单的页数显示,并且点击圆点可以显示对应图片: 2# 点击圆点,显示对应图片的缩略图 ...
- 转载:asp.net生成缩略图通用函数(支持多种生成方式)
文章转载自书生的Blog,原地址是http://www.cnblogs.com/pbwf/archive/2006/03/31/363981.html 感觉十分好用,比较自己写的更全面也更仔细,就放弃 ...
- OpenResty+lua+GraphicsMagick生成缩略图
1.安装GraphicsMagick 下载地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.19/G ...
- asp.net上传图片自动生成缩略图功能代码
if (FileUpload1.FileName.ToString() == "") { Label3.Text = "请选择图片!"; } else { Bo ...
- [转载] 如何使用Python 实现秒表功能?
参考链接: 在Python中使用Tkinter创建秒表 其实python不是我们看到那么复杂,如果打好扎实的基础,我们可以用python做一些好玩的事情,比如实现秒表功能,一起来看下把~ 前言: 本文 ...
最新文章
- 青蛙 mysql_青蛙学Linux—MySQL常用命令(二)
- C++ Primer 有感(类)
- tensorflow随笔-tf.no_op
- python3字典(Map)
- python中的itertools_在python中使用itertools操作csv数据
- vue使用echarts可视化图形插件
- org.apache.commons.io——FileUtils学习笔记
- ssm访问html乱码_SpringMVC+jdbc和SSM整合
- 腾讯被深圳南山法院强制执行:执行标的25元;B站就招聘争议致歉;华为云回应是否将独立运作|极客头条...
- base64与base64url编码
- 基于Linux平台的libpcap源码分析和优化
- RTK_LIB 源码、可执行文件、rtkget、观测文件、星历文件(精密星历、广播星历)、精密钟差文件介绍
- 使用Eclipse统计自己项目程序代码量【实测可用】
- 几个常用的产品原型设计工具
- 体重测试仪软件,一键校准身高体重测量仪
- “最难就业季“中的大学生就业:本硕过半有着落 高职生成香饽饽
- java反序列化与Apache CC链、fastjson反序列化的理解与研究
- 使用win10自带功能,横屏、竖屏显示器分别设置壁纸
- java生成日志文件_java - 把日志生成到指定目录
- 使用golang解压带有文件夹的tgz文件
热门文章
- python2异步编程_python异步编程 (转载)
- 电脑cpu排名_可能是最详细的小白【笔记本电脑】选购攻略(附热门机型推荐)...
- ajax制作表格,Ajax实现表格实时编辑(示例代码)
- 写一副对子_挥毫泼墨写春联 西安街头年味分外浓
- Java高并发编程:性能与线程竞争
- ie浏览器修复_继IE之后,微软要彻底放弃它们了...
- WIN下Nginx缓存加速配置方法
- Deep Learning 教程(斯坦福深度学习研究团队)
- vue 使用sass 和less
- 本地方法中printf如何传给java--java系统级命名管道