OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能

http://www.hopesoft.org/blog/?p=1188

2、用法

原始图片是input.jpg,尺寸:160×120

1)只缩小不放大

1

gm convert input.jpg -resize "500x500>" output_1.jpg

加了>,表示只有当图片的宽与高,大于给定的宽与高时,才进行“缩小”操作。
生成的图片大小是:160×120,未进行操作
如果不加>,会导致图片被比等放大。

2)等比缩图 (缺点:产生白边)

1

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

生成的图片大小是:100×75

3)非等比缩图,按给定的参数缩图(缺点:长宽比会变化)

1

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

生成的图片大小是:100×100

4)裁剪后保证等比缩图 (缺点:裁剪了图片的一部分)

1

gm convert input.jpg -thumbnail "100x100^" -gravity center -extent 100x100 output_3.jpg

生成的图片大小是:100×100,还保证了比例。不过图片经过了裁剪,剪了图片左右两边才达到1:1

5)填充后保证等比缩图 (缺点:要填充颜色,和第一种方法基本一样)

1

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

生成的图片大小是:100×100,还保证了比例,同时没有对图片进行任何裁剪,缺失的部分按指定颜色进行填充。

6)裁剪、填充相结合 (缺点:最差的方法)

1

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

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

7)位深度32 转为24
IE6,7,8不支持显示“位深度32”的图片,但IE9、火狐、谷歌浏览器就可以显示。
使用GM,把“位深度32”的图片转换为“位深度24”的图片
输入图片zzz.jpg就是“位深度32”的图片,输出图片 zzz_out.jpg就是“位深度24”的图片

1

gm convert -resize 100x100 -colorspace RGB zzz.jpg zzz_out.jpg

转完后,图片的颜色会有轻微变化。

更多请参考:http://elf8848.iteye.com/blog/382528

时间: 2024-08-05 07:31:06

OpenResty(Nginx)+Lua+GraphicsMagick实现缩略图功能的相关文章

nginx+lua+GraphicsMagick生成实时缩略图-CentOS7

背景 大多数的系统都会涉及缩略图的处理,比如新闻系统和电商系统,特别是电商系统,每个商品大图都会对应一系列尺寸的缩略图用于不同业务场景的使用.部分系统也会生成不同尺寸的缩略图以供PC.手机端.ipad端使用. 解决方案探索: 直接加载原图,使用css样式表来控制图片的宽高.显然不太合适,大家也尽量不要这样做. web程序在上传成功后,同时生成相应缩略图.这种做法效率较低,如果遇到批量导入的业务时严重影响性能.并且同步生成缩略图会占用一定量的存储空间,如果能按需生成岂不更好? 使用七牛.阿里云提供

使用nginx+lua+GraphicsMagick实现图片自动 裁剪

在做网站尤其是以内容为主的过程中,常常会遇到一张图片各种地方都要引用,且每个引用的地方要求的图片尺寸都不一样的.一般中大型的网站都会对这一类的图片做自动裁剪功能.本文介绍在centos6操作系统上,采用nginx.lua和GraphicsMagick工具简单实现图片的自动裁剪功能.其中nginx负责展示图片和调度lua脚本,GraphicsMagick负责对原图进行裁剪. 一.基础软件包安装groupadd wwwuseradd -g www www -s /bin/falseyum -y in

高频访问IP限制 --Openresty(nginx + lua) [反爬虫之旅]

嗯-.本人是从写爬虫开始编程的,不过后面做web写网站去了,好了,最近web要搞反爬虫了,哈哈哈,总算有机会把之以前做爬虫时候见识过的反爬一点点给现在的网站用上了~ 做爬虫的同志,有怪莫怪喽~还有求别打死 > < 首先要提一下AJAX,现在普天下网页几乎都是往特定的数据接口请求数据了,除了什么首屏渲染这种服务端渲染好html以外,几乎没有什么静态网页了.我看了有一些帖子说AJAX让爬虫难做,可是我觉得结合一些工具(比如chrome的开发者工具),找到AJAX所请求的后端数据接口一点也不难,而且

安装OpenResty(Nginx+Lua)开发环境

一.简介 OpenResty? 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web 应用.Web 服务和动态网关. OpenResty? 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台.这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支

【原创】大叔问题定位分享(36)openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil

openresty(nginx+lua)中获取不到post数据,ngx.req.get_body_data返回nil This function returns nil if the request body has not been read, the request body has been read into disk temporary files, or the request body has zero size. 打开nginx调试日志 error_log /var/log/ng

OpenResty+lua+GraphicsMagick生成缩略图

1.安装GraphicsMagick 下载地址:http://www.graphicsmagick.org/ tar zxvf GraphicsMagick-1.3.20.tar.gz cd GraphicsMagick-1.3.20./configure make make install 安装依赖包Ghostscript,不安装的话加水印会找不到字体 yum install -y ghostscript 2.配置nginx.conf location /down/PersonImg { se

搭建OpenResty(Nginx+Lua)

这篇文章是一个多月前写的,当时之所以搭建这个是为了最大程度上发挥Nginx的高并发效率(主要是结合lua脚本),参考的话,主要参考张开涛先生写的跟开涛学Nginx+lua系列文章,地址为:https://jinnianshilongnian.iteye.com/blog/2190344 当时本人按照张开涛写的一步一步搭建,当然了也发现一些小问题,所以在此将其发表出去,另外强调一点,开发人员无论是平时编写代码或者是调研新技术或者实践,最好也写写文档总结一下. 我写文档的主要目的,一来让自己思路更加

nginx+lua+ngx_lua_waf实现waf功能

用途: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,×××F等web*** 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的*** 屏蔽常见的扫描***工具,扫描器 屏蔽异常的网络请求 屏蔽图片附件类目录php执行权限 防止webshell上传 1.下载并解压luajit 2.0.5wget http://luajit.org/download/LuaJIT-2.0.5.tar.gztar -zxvf LuaJIT-2.0.5.tar.gzcd Lu

nginx+lua_nginx+GraphicsMagick生成实时缩略图

暂做笔记,带后续验证通过后,再补充 1.2.3 步. 一.安装 lua 二.安装 GraphicsMagick 三.安装nginx 四.配置 nginx nginx.conf http { lua_package_path '/usr/local/openresty/nginx/lua/?.lua;;'; server { listen 80; server_name img.rhythmk.org; root /home/wwwroot/static/image; #对类似_100x100.g