尝试使用GraphicsMagick的缩略图功能,互联网营销

简介:   现在,对一个Web程序员来说,图像处理已经属于必会知识之一了。且不说Flickr,Yupoo等专业图片分享网站,就算是一个和图片分享不沾边的网站,也会用到很多图片处理的功能,比如说:用户上传头像,然后自动生成缩略图。

  现在,对一个Web程序员来说,图像处理已经属于必会知识之一了。且不说Flickr,Yupoo等专业图片分享网站,就算是一个和图片分享不沾边的网站,也会用到很多图片处理的功能,比如说:用户上传头像,然后自动生成缩略图。

  常用的图片处理工具有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),以后的各个例子都会用到它:

  

  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

  

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

  缩略图3

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

  -gravity center -extent 100x100 output_3.jpg

  

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

  缩略图4

  gm convert input.jpg -thumbnail '100x100' \
  -background gray -gravity center -extent 100x100 output_4.jpg

  

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

  缩略图5

  gm convert input.jpg -thumbnail '10000@' \
  -background gray -gravity center -extent 100x100 output_5.jpg

  

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

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

  补充:如果想让用户手动裁剪头片的话,imgAreaSelect是个好选择。

目录
相关文章
|
8月前
|
数据采集 JSON 编解码
收藏|Unsplash高清壁纸批量下载(源码+工具)!
收藏|Unsplash高清壁纸批量下载(源码+工具)!
|
JSON 数据格式
如何将自制的live2d模型上传至facerig创意工坊使得别人可以下载
如何将自制的live2d模型上传至facerig创意工坊使得别人可以下载
491 0
|
小程序 前端开发 数据挖掘
嘘!市面上短视频(douyin)“去水印”的工具原来是这样实现的
现在视频号非常火热,之前在做抖音和快手的人就直接把之前的视频直接搬运过来了。但是从抖音app下载的视频都是带官方水印的?这个是怎么去掉的?哦,不对,他们应该都有保 留原视频的吧。但是还有很多人是直接搬运别人的视频的,那他们是怎么去水印的呢? 其实早就有很多现成的工具,如小程序、去水印app都能直接去水印,甚至还有收费的。
1021 1
嘘!市面上短视频(douyin)“去水印”的工具原来是这样实现的
|
8月前
|
Web App开发 数据采集 人工智能
|
10月前
|
开发工具
语音聊天室源码技术美颜滤镜功能的配置
美颜滤镜功能从现身以来一直受到人们的火爆追捧,所以为了顺应市场的需求,开发语音聊天室源码平台也必须要有美颜滤镜功能,今天我就将语音聊天室源码技术美颜滤镜功能的配置知识分享给大家。
语音聊天室源码技术美颜滤镜功能的配置
|
11月前
|
存储 编解码 Android开发
一款压缩图片又不损画质的黑科技软件!!!
一款压缩图片又不损画质的黑科技软件!!!
|
人工智能
Portraiture2023永久免费智能磨皮美化滤镜插件
Portraiture for Photoshop是基于Photoshop设计的一款智能磨皮修饰滤镜插件,在PS设计中处理比较多的就是人像了,最常用的是磨皮,这款插件可实现智能磨皮美化,对图中人物的皮肤、头发和眉毛等部位进行美化,还可增加滤镜,磨皮效果自然,提升P图效率,支持Photoshop2023版本。
386 0
youtube下载视屏和字幕办法
youtube下载视屏和字幕办法
134 0
|
人工智能 前端开发 JavaScript
免费万能图片在线编辑工具,一键抠图改图神器
图片去水印、在线扣图、转换格式,甚至是生成漫画头像!无需下载客户端,仅在一个网站即可完成多项图片编辑处理工作,改图神器里 15+ 工具满足你的多项需求。真算得上一个强大的综合性工具箱!不得不说,在线工具真的提供了很多便捷,而且不用担心软件删除的问题。
免费万能图片在线编辑工具,一键抠图改图神器
|
前端开发
前端工作总结123-视频上传和图片编辑功能
前端工作总结123-视频上传和图片编辑功能
73 0
前端工作总结123-视频上传和图片编辑功能