图片压缩,这个功能基本上每个网站都会去做一下。要不然,就有那样不按套路出牌的人给你去捣乱。

运行环境,同上一篇。

1.papercliper

2.p_w_picpathMagick

同样是papercliper 插接。然后还要加一个p_w_picpathMagick图片处理工具。意思就很明显了,papercliper 是调用的 p_w_picpathMagick的方法进行的图片压缩。

p_w_picpathMagick的安装只要到google上面搜索一下就会出现一大堆。所以我就不多说了。

下面具体说一下papercliper 是怎么压缩上传的图片的。

在papercliper配置完成之后都会写这样一段代码:

  1. has_attached_file :res,
  2. :storage => :filesystem,
  3. :styles => {:normal => '300x300>',:medium => '250x250',:thumb => '100x100#'}

上传的图片会放到public/system下。

下面是重点,看一下大概的压缩方式,不过在看之前有点要注意一下,p_w_picpathMagick这个工具有一点我不太明白,它只支持jpg的文件压缩。(各位看官有什么其余的想法不妨说出来,大家讨论一下。)

所以,在上传图片的同时要对图像文件进行转换,给强制转换成jpg文件。

举个例子:

用过的人都知道原图的存储文件是original,如果我只想对原图进行压缩,其余的图片不想进行压缩,那么要这样写:

  1. has_attached_file :res,
  2. :storage => :filesystem,
  3. :styles => { :original=>['',:jpg],:normal => '300x300>',:medium => '250x250',:thumb => '100x100#'}

跟上面代码不同的地方是,在这里的:styles 内加上了 :original=>['',:jpg],意思是将原图进行转换。转换为jpg格式后再进行压缩。

最后写上最重要的一句,papercliper调用p_w_picpathMagick的压缩方法。

  1. has_attached_file :res,
  2. :storage => :filesystem,
  3. :styles => { :original=>['',:jpg],:normal => '300x300>',:medium => '250x250',:thumb => '100x100#'},
  4. :convert_options => { :original => "-quality 10" }

到这里,就完成了。其中-quality 10 这个参数代表的意思是更改源文件的品质为多少。

之前尝试过,如果是 10 的话 可以将1.9M左右的图片压缩成70多K的jpg图片。

以此类推,就很好写了。

到这里所有的设置就完成了,赶快去试一下吧。

转载于:https://blog.51cto.com/douchunrong/1075291

ruby on rails 之图片压缩相关推荐

  1. 视频教程-Ruby on Rails打造企业级RESTful API项目实战我的云音乐-Ruby/Rails

    Ruby on Rails打造企业级RESTful API项目实战我的云音乐 任苹蜻,爱学啊创始人 & CEO,曾就职于某二车手公司担任Android工程师后离职创办爱学啊,我们的宗旨是:人生 ...

  2. Ruby on Rails的下载及安装以及开发环境的搭建

    要基于ruby开发应用程序,我们必须安装ruby.gem.rails.mongrel. 第一,到官方网站上下载最新的Ruby One-Click Installer版本(已经自带了RubyGems,一 ...

  3. netbeans下开发rails快捷键 及 Ruby On Rails开发技巧总结

    在controller和view直接跳转 - Ctrl + Shift + A 在controller/model和test/spec之间跳转 - Ctrl + Shift + T 直接跳转到类和方法 ...

  4. [转载] Ruby、Rails、Agile的启示

    转自:http://vipnews.csdn.net/newscontent.aspx?pointid=2008_03_03_170600555 文/杨祥吉 本文作者以使用Ruby和Rails进行创业 ...

  5. 各种 PNG图片压缩对比分析

    背景与现状 随着版本的迭代,业务的增加,QQ音乐apk的大小已经超过25M,其中res目录占用的大小超过5.5M,所以提出了对安装包进行瘦身的技术需求.业务的增加导致图片越来越多,通过分析可以知道PN ...

  6. Status Ruby on Rails in China - Presentation Transcript

    Slide 1: 铁道中文应用开发现状综述 2008年8月 制作发布:铁道播客 BD7LX 深圳 http://rorcast.blogger2blogger.com/ 铁道中文应用开发现状综述 20 ...

  7. Ubuntu 10.10下搭建ror(ruby on rails)开发环境

    1. 修改软件源,最好为main server. system=>系统管理=>更新管理器=>设置=>软件源 2. sudo apt-get update   (更新下载源) 3 ...

  8. [rails] 我的订餐系统 -- 小试ruby on rails(转)

    前言         近期在java社区中一种新的脚本语言ruby,及用ruby开发的一个wab框架 rails也热闹了起来.引起了不少的java开发人员的关注. 本人平时还是很少接触脚本语言方面东东 ...

  9. ruby on rails_我成为了Ruby on Rails和React的贡献者,你也可以

    ruby on rails I am really grateful to have contributed to a few open source projects, including two ...

最新文章

  1. oracle一条sql的执行过程,请问执行一条sql的整个过程是怎样的,谢谢!
  2. BringWindowToTop(), SetForegroundWindow(), SetActiveWindow()
  3. Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结
  4. nohup: 忽略输入重定向错误到标准输出端_Linux 重定向与管道
  5. css版式_第2部分:使版式具有响应能力,并为以后的版本奠定基础
  6. 风林火山win11 64位官方版iso镜像v2021.07
  7. 微软:今年要让Office 2007寿终正寝
  8. Linux——好用的一些命令(一)(保持更新)
  9. Linux Vim三种工作模式(命令模式、输入模式和编辑模式)详解
  10. 【图像融合】自适应参考图像的可见光与热红外彩色图像融合算法
  11. pip 安装 pytorch环境
  12. 查找算法之二 二分查找(C++版本)
  13. 《LeetCode刷题C/C++版答案》pdf出炉,白瞟党乐坏了
  14. android wifi 抓sniffer log
  15. 极速office如何插入超链接
  16. 支付宝支付接口的使用
  17. 光电特性传感器实验台
  18. 图片文件损坏如何修复?只需这样操作
  19. 计算机桌面清理用于什么,C盘哪些文件可以删除?电脑C盘满了清理瘦身技巧
  20. IndexError: The shape of the mask [32, 8732] at index 0does not match the shape of the indexed tenso

热门文章

  1. mysql分组后再分组_全网最全的mysql分组后取topN的解答
  2. 8.Java 面试题整理(J2EE,MVC方面)
  3. 安卓学习笔记03:安卓应用目录结构
  4. Python学习笔记:创建进程
  5. 石子合并问题(内含BZOJ3229 AC代码)
  6. java中nio流_Java输入输出流IO介绍(与NIO比较)
  7. usaco题思考记录
  8. 江苏省计算机一级题库软件百度云,江苏省计算机一级B题库11
  9. MySQL中有exists关键字吗_Mysql中EXISTS关键字用法、总结
  10. 【英语学习】【Level 08】U03 My Choice L2 All-time favorite character