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

运行环境,同上一篇。

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. 阿里亲制明信片,字节、百度直接发锅……这些公司的新年礼盒越来越会玩~
  2. cnn 预测过程代码_FPN的Tensorflow代码详解——特征提取
  3. 决策树结合网格搜索交叉验证的例子
  4. eclipse类文件无法找到_「Revit技巧」新建项目和族时无法找到样板文件(丢失)?...
  5. myisam和innodb到底谁更快
  6. 限制ul显示高度_led显示屏钢结构吊装方案原则及适用条件
  7. 使用手机模拟器与android操作系统
  8. php错误日志框架,错误与日志 - Laravel - 为 WEB 艺术家创造的 PHP 框架。
  9. 网络学习(六)Windows XP系统之ghost安装
  10. redis实现订单过期取消
  11. MongoDB最佳实践
  12. 分区供水条件口诀_分区供水高频考点,收藏哦
  13. json html api文档,插件 jQuery.jsonview 中文 API 文档
  14. IMDB TOP 250 电影榜单
  15. 最新的ESD(ElectroStatic Discharge)静电介绍及其标准下载(见文尾)
  16. 关于 Android Studio 鼠标中键的一些技巧
  17. 【VS Code】Windows10下VS Code配置Ruby语言环境
  18. 群晖download station中添加BT搜索引擎
  19. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索
  20. ACM Uva10763 交换学生

热门文章

  1. ckeditor 图片上传_开发问题:Django使用ckeditor上传到七牛云
  2. html如何把上边角做成椭圆,使用css3的border-radius和border制作半圆、三角、椭圆等各种图形...
  3. oracle查看视图数据,查看oracle 10g 视图-数据库专栏,ORACLE
  4. matlab实验与系统信号实验二,信号与系统上机实验-matlab(第一第二次实验课)new
  5. 五环 html css,CSS + radius 五环
  6. groovy 和 java的区别_Groovy和JAVA的区别
  7. jQuery+CSS动态改变class
  8. 报错,Unknown custom element: <DeviceVendorStatistics> - did you register the component correctly? For
  9. 2020年Java实训项目【GUI学生信息管理系统】目录
  10. SSM框架笔记09:初探Spring——采用Java配置方式