1、安装GraphicsMagick

下载地址:http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/1.3.19/GraphicsMagick-1.3.19.tar.gz/download?use_mirror=ncu

tar zxvf GraphicsMagick-1.3.19.tar.gz
cd GraphicsMagick-1.3.19
make
make install

安装依赖包Ghostscript,不安装的话加水印会找不到字体

yum install -y ghostscript

2、配置nginx.conf

location /down/PersonImg {set $image_root /usr/local/openresty/nginx/html;set $file "$image_root$uri";rewrite_by_lua '
                local index = string.find(ngx.var.uri, "([0-9]+)x([0-9]+)");local originalUri = string.sub(ngx.var.uri, 0, index-2);local area = string.sub(ngx.var.uri, index);index = string.find(area, "([.])");area = string.sub(area, 0, index-1);local image_sizes = {"140x140", "800x800", "90x90"};function table.contains(table, element)for _, value in pairs(table) doif value == element thenreturn trueendendreturn falseendif table.contains(image_sizes, area) thenlocal command = "/usr/local/GraphicsMagick/bin/gm convert " .. ngx.var.image_root ..  originalUri  .. " -thumbnail " .. area .. " -gravity center -extent " .. area .. " " .. ngx.var.file;os.execute(command);elsengx.exit(401)end';alias /usr/local/openresty/nginx/html/down/PersonImg/;}

3、访问
http://10.10.3.221/down/PersonImg/3AFAE457-FDC8-27D3-E2B5-6C10A145A3A6.jpg.90x90.jpg

4、要加水印的话命令如下

/usr/local/GraphicsMagick/bin/gm convert /usr/local/openresty/nginx/html/down/PersonImg/3AFAE457-FDC8-27D3-E2B5-6C10A145A3A6.jpg -font ArialBold -pointsize 45 -fill red -draw "text 10,10 dsideal" /usr/local/openresty/nginx/html/down/PersonImg/3AFAE457-FDC8-27D3-E2B5-6C10A145A3A61111.jpg

转载于:https://www.cnblogs.com/kgdxpr/p/3837264.html

OpenResty+lua+GraphicsMagick生成缩略图相关推荐

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

    背景说明 大多数的系统都会涉及缩略图的处理,比如新闻系统和电商系统,特别是电商系统,每个商品大图都会对应一系列尺寸的缩略图用于不同业务场景的使用.部分系统也会生成不同尺寸的缩略图以供PC.手机端.ip ...

  2. GraphicsMagick安装、实时生成缩略图

    GraphicsMagick资料 ---------------------------------------------------------------------------- Graphi ...

  3. 如何实时生成缩略图?

    GraphicsMagick资料 ---------------------------------------------------------------------------- Graphi ...

  4. 【转载】尝试使用GraphicsMagick的缩略图功能

    原文地址:http://hi.baidu.com/thinkinginlamp/blog/item/4b61e9241f08820f4c088d95.html 尝试使用GraphicsMagick的缩 ...

  5. 【Nginx】面试官竟然问我Nginx如何生成缩略图,还好我看了这篇文章!!

    写在前面 今天想写一篇使用Nginx如何生成缩略图的文章,想了半天题目也没想好,这个题目还是一名读者帮我起的.起因就是这位读者最近出去面试,面试官正好问了一个Nginx如何生成缩略图的问题.还别说,就 ...

  6. C# webform上传图片并生成缩略图

    其实里面写的很乱,包括修改文件名什么的都没有仔细去写,主要是想记录下缩略图生成的几种方式 ,大家明白就好! 1 void UpImgs() 2 { 3 if (FileUpload1.HasFile) ...

  7. C#编写的生成缩略图程序

    if(fileupload.PostedFile!=null)      {           //addto为要添加的属性,aboutfile为文件说明       string nam = fi ...

  8. 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图

    本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图. 实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程 ...

  9. php裁剪图片白边,php生成缩略图填充白边(等比缩略图方案)

    网站上传图片后生成缩略图应该是非常常用的功能了,通常来讲为了网站显示美观,缩略图会是同样尺寸,比如最近笔者做的一个站点,缩略图规格要求都是160×120.但是如果上传的图片比例和缩略图不一致,直接缩放 ...

最新文章

  1. 理解 Delphi 的类(十一) - 深入类中的方法[8] - 抽象方法与抽象类
  2. Simhash 网页重复
  3. Linux学习:目录遍历函数
  4. php编程怎么和mysql链接_php编程怎么和mysql连接
  5. J2EE的经常使用十三规范——java菜鸟成长记
  6. Node.js 模块之Nimble流程控制
  7. 对Boost.Asio中异步事件循环的理解
  8. boost::asio c++ 网络编程socket通信一个简单例子
  9. vue全家桶搭建前端页面注意细节及遇到的难题
  10. 如何修改(显示)文本文档后缀名
  11. 运行 Pycharm,提示 Error running ‘xxx‘: Unexpected content storage modification: page=221; newRecord=112
  12. 视频转换器怎么将视频转成GIF动画
  13. 1198_MISRA_C规范学习笔记_Rule 8.6 Rule 8.7
  14. C语言班主任管家系统
  15. 笔记:live2d4.0 sdk 博客园网页动画
  16. MySQL 数据归档清理方法
  17. day18 - 正则表达式
  18. 高德地图哪个语音包最好_贪玩蓝月语音包 高德地图语音包哪个好
  19. 2021-08-22dc6靶机实战wp插件漏洞利用+suid提权+rockyou+sudo -l换命令写shell+nmap运行nse提权(转)
  20. WPS简单五步操作修改图形并调整图形位置大小和旋转角度

热门文章

  1. 揭秘《英雄联盟》客户端更新运行自动化测试
  2. 如何让手游内存占用更小?从内存消耗iOS实时统计开始
  3. 如何在 Linux 最小化安装中设置互联网
  4. 【蓝桥杯Java_C组·从零开始卷】第八节、综合测试
  5. 表单一次性上传多个文件
  6. Linux Shell 通配符、元字符、转义符使用实例介绍
  7. 【转载】target='_blank' 安全漏洞示例
  8. 一个调用其他activity的完整例子,使用了 onActivityResult和startActivityForResult
  9. WPF自定义产品框架
  10. uva 753(网络流最大流)