`
fireflyman
  • 浏览: 113711 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

Rmagick快速應用指南

    博客分类:
  • ROR
阅读更多
鉴于一些莫名其妙的原因,我不得不帮店铺的几个小妹妹写个能加水印的东东,(为啥不用软件...这是个很纠结的问题..版权他妹的)因此就开始收集Rmagick的资料了,先分享如下:

1.入門篇
Rails上的RMagick使用经验之谈
http://www.iteye.com/topic/125487
亮點如下:
(1)使用RMagick,重要会用到两个对象:Image和Draw.这两个对象可以形象的理解为:Image对象相当于画布,Draw对象相当于画笔.
(2)对象的主要功能有:在图片上写字,在图片上画线,把另一张图片组合到当前图片上.
之所以把它定義為入門篇是因為它給我們簡單的介紹了一些語法..語法懂了,具體應用也就是按圖索驥而已....更详细点的可以参考这个文档http://www.imagemagick.org/RMagick/doc/

2.進階篇

接下來讓我們先看兩個例子吧...它们就像孙悟空的如意金刚棒...allmoneycomemyhome....

小小小...
require 'rubygems'
require 'RMagick'
img =  Magick::Image.read('image/rails.png').first
width = img.columns
height = img.rows
thumb = img.resize(width * 0.8, height * 0.8)
thumb.write('image/rails_thumb_1.png') {self.quality = 50} #compress压缩大小


(1)RMagic 处理图片-Magick::Image对象学习_1
  http://www.weekface.info/2010/04/08/ruby-rmagick-imagelist

大大大......
require 'rubygems'
require 'RMagick'
img =  Magick::Image.read('image/rails.png').first #Image.read返回一个数组(因为有时候我们会read一个GIF动画,那么GIF动画的每一帧会存到这个数组里,真是周到)
width, height = 100, 100
thumb = img.resize(width, height) 
thumb.write('image/rails_thumb.png')


(2)RMagic处理图片小试牛刀
http://www.weekface.info/2010/01/30/ruby-rmagic

当然上面的两个例子并不能满足一些实际的要求,要我们来看一个很实际的应用-->水印问题..
(3)ruby中rmgaick给图片加版权信息和水印(中文水印)
http://www.iteye.com/topic/107055
从该篇文章的题目你就可以知道,它是给图片加文字的...这其实也只是小case,不过实例代码还是很有用的....(这篇文章的亮点是...我找不到复制按钮...)

这里还有个实例
(4)使用RMagick制作特效
http://www.iteye.com/topic/559123
  
 Rows = 60
    Cols = 250
    Text = 'Ruby rocks!'
    anim = Magick::ImageList.new
    ex = Magick::Image.new(Cols, Rows)
    text = Magick::Draw.new
    text.gravity = Magick::CenterGravity
    text.pointsize = 36
    text.font_weight = Magick::BoldWeight
    text.font_style = Magick::ItalicStyle
    text.stroke = 'transparent'
    text.annotate(ex, 0, 0, 2, 2, Text) {
      self.fill = 'gray60'
    }
    anim << ex.copy
    ex = ex.blur_image(0, 3)
    anim << ex.copy
    text.annotate(ex, 0, 0, -1, -1, Text) {
      self.fill = 'maroon'
    }
    anim << ex.copy
    anim.delay = 100
    anim.cur_image.delay = 300
    anim.iterations = 0
    anim.write('shadow.gif')
    exit

(为了避免广大死宅去求合体,我先声明一点,该链接的作者是男的.....)

3.實戰篇
由於一直對圖片裁剪情有獨鍾,所以選擇了這兩篇來作實踐例子...

(1)基于jquery和mini_magick的图片裁剪(这篇只是为了跟下面的作对比...虎跑威武..)
http://www.iteye.com/topic/541141

(2)javascript-image-cropper-ui with rails
http://www.iteye.com/topic/437357
def update
    @photo = Photo.find params[:id]
    img = Magick::Image::read(File.expand_path(RAILS_ROOT)+"/public/"+@photo.public_filename(:medium)).first
    img.crop!(::Magick::CenterGravity, params[:x1].to_i, params[:y1].to_i,
      params[:width].to_i, params[:height].to_i, true)
    img.write File.expand_path(RAILS_ROOT)+"/public/"+@photo.public_filename(:thumb)
    redirect_to photo_path(@photo)
end



让我们继续吧....
接下来这两个例子有点老...还没试过..不过里面写的东西倒是挺不错的..
(3)Render Great-looking Collages with Ruby and RMagick(06年的文章....)
http://weare.buildingsky.net/2006/10/18/render-greatlooking-collages-with-ruby-and-rmagick
四个实例:
* Resize and Composite Main image
*Layout Slides
* Add Slide images and Compositep Alpha Channel(阿尔法通道(Alpha Channel)是指一张图片的透明和半透明度)
*Experiment!

(4)Using RMagick with Flickr
http://weare.buildingsky.net/2006/10/23/using-rmagick-with-flickr


下面这篇我还没看...不过有位高人告诉我,这是神器,有它足以秒杀一切需求....
(5)ImageMagick v6 Examples --Annotating Images
http://www.imagemagick.org/Usage/annotating/
按圖索驥,基本上應有盡有,具体用法,看看就懂....


#-----------------------写在最后-----------------------------------------#
对于Rmagick我知道的不多,只是最近刚好需要,于是就学习了下,如果文章里有什么谬误的话,烦请各位大大指出...另外,由于找不到其它实例,所以里面的很多东西都是采自JE的...希望有资源的兄弟们,能够发上来让我学习下...万分感谢..
分享到:
评论
5 楼 shaquan6776 2010-07-30  
可以用paperclip和nginx结合,利用nginx upload module去处理文件,
然后用Rmaigkc去压缩,resize图片.

链接:http://matthewhutchinson.net/2010/1/6/nginx-upload-module-with-paperclip-on-rails
4 楼 fireflyman 2010-07-20  
jordan0611 写道
我在找paperclip和RMagick的结合用法,到那时我看了这个,我发现也很受用,谢谢指点


paperclip在這里....自己看吧
http://fireflyman.iteye.com/blog/704792
3 楼 jordan0611 2010-07-20  
我在找paperclip和RMagick的结合用法,到那时我看了这个,我发现也很受用,谢谢指点
2 楼 fireflyman 2010-07-14  
yangzhihuan 写道
RMagick 已经成为Rails web开发的必备工具了。

是啊...基本上凡是要上傳圖片,就得用上它....
BTW,最近圓圓發現了個上傳用的插件,叫CarrierWave

項目地址
http://github.com/jnicklas/carrierwave
Demo
http://github.com/jnicklas/carrierwave-example-app

有空就試用下吧....最好把使用總結也寫寫..嘻嘻..
1 楼 yangzhihuan 2010-07-14  
RMagick 已经成为Rails web开发的必备工具了。

相关推荐

    rmagick-2.16.0.gem

    安装redmine-3.2.3 ruby on rails 下的插件 rmagick 2.16.0 gem

    rmagick-2.3.0-x86-mswin32.gem

    rmagick-2.3.0-x86-mswin32.gem 用于图片验证码

    rmagick-2.10.0.gem

    rails 插件rmagick 2.10.0 gem

    RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.rar

    RMagick-2.12.0-ImageMagick-6.5.6-8-Q8.rar 包含 rmagick-2.13.2.gem ImageMagick-6.5.6-8-Q8-windows-dll.exe RMagick-2.12.0.tar.gz rmagick-2.12.0-x86-mswin32.gem

    rmagick:ImageMagick的Ruby绑定

    马吉克目录介绍RMagick是Ruby编程语言和ImageMagick图像处理库之间的接口。先决条件最新版本的RMagick需要具备这些先决条件。 操作系统Linux * BSD 苹果系统视窗其他* nix类系统Ruby2.3版或更高版本。 您可以从获得...

    hornetseye-rmagick:WaSP眼的 RMagick 集成

    hornetseye-rmagick 作者: Jan Wedekind版权所有: 2010许可证: GPL 概要 这个 Ruby 扩展实现了必要的转换,以保存和加载存储在 {Hornetseye::MultiArray} 中的图像。 安装 hornetseye-rmagick使用RMagick Ruby 扩展...

    rucaptcha:用于Rails应用程序的Captcha gem。 没有依赖关系。 没有ImageMagick,没有RMagick

    RuCaptcha 这是Rails应用程序的Captcha宝石,它通过C代码生成验证码图像。 注意:根据Ruby China的使用,验证码看起来被OCR解析的可能性低于5%... 没有RMagick; 用于Rails应用; 简单,易用; 高性能。 用法 将

    rmagick-2.13.1-x86-mingw32.gem

    redmine的一个包文件,可以用来导出为pdf,图像的功能

    minimagick:RMagick的迷你替代品

    在我的本地计算机上,这不是问题,但是在我的托管服务器上,Ruby应用由于其100MB内存限制而崩溃。 解决方案! 使用MiniMagick,ruby进程的内存仍然很小(它生成了ImageMagick的命令行程序mogrify,该程序也占用了...

    DoubleTake:Ruby宝石,用于视觉回归测试等

    快速入门指南 比较 为什么? CSS允许轻松地进行更改,但是很难确保所做的更改不会在项目的其他地方产生意外的后果。 如何? DoubleTake是一个命令行工具,使用YAML文件进行配置。 生成和编辑配置文件很容易。 ...

    print_hub:用于管理和打印文档的Web应用程序

    用于管理和打印文档的Web应用程序 安装指南。 以前运行: sudo apt-get install cups-bsd#Extra Cups命令行实用程序 sudo apt-get install libcups2-dev#Cups gem依赖(Ubuntu 12.04) sudo apt-get install ...

    ChunkyGuide:jackjt8 的 Chunky https 指南

    jackjt8 的矮胖指南 Chunky 是一种 Minecraft 渲染工具,它使用路径跟踪来创建 Minecraft 世界的逼真图像。 关于我 到目前为止,我已经使用 Chunky 超过 6 ... 使用gem install rmagick --platform=ruby -- --with-opt

    drosterize:使用Ruby和RMagick自复制图像

    雄oster Drosterize是将图像处理代码从Wolfram语言转换为Ruby的另一项实验。 以前是 ,看看。 当前实验的来源是( )的一篇名为“ 。 Drosterize会执行“ ”(自我,包括递归图像)。 这里有一些例子,后面是...

    xkcdize:Ruby 和 RMagick 中类似 XKCD 的图片失真

    这是一个用于Ruby和图像的小型实验脚本。 它只需要一些图像并转换成“ -like”(手写效果)。 前: 后: 剧本背后的故事很简单。 我刚刚阅读了 Wolfram 人 Vitaliy Kaurov 的一篇出色的博客,他解释说,如何在 ...

    Ruby-Ruby绑定ImageMagick

    RMagick是Ruby和ImageMagick之间的接口

    s9splashgen:适用于 iPhone 和 iPad(iOS 7 及更高版本)的启动画面生成器

    Ruby 脚本s9splashgen自动为 iPhone 和/或 iPad 应用程序(iOS 7 及更高版本)生成所有必要大小的启动画面。 它使用imagemagick和 gem rmagick 。 安装 安装imagemagick和rmagick通过 brew install imagemagick gem ...

    kamcaptcha:Rails的验证码插件

    您需要使用kamcaptcha命令行工具生成一系列图像,以供您的应用程序使用。 该工具取决于所安装的RMagick,因此: gem install rmagick kamcaptcha-帮助 然后根据您的喜好生成图像。 如果指定盐,请在配置应用程序...

    px4test:连续交付的测试脚本

    Hans-CI用于嵌入式硬件上的持续集成官方网站: : 用户数先决条件通过软件包管理器安装操作系统依赖项:苹果系统brew install opencv imagemagick ninjasudo gem install specific_install和RMagick: sudo gem ...

    CentOS下安装配置最新redmine2.3

    CentOS下安装配置最新redmine2.3 包含整合apache 安装rmagick

    fastimage:FastImage通过获取所需的内容来查找给定uri的图像的大小或类型

    快速图像 FastImage通过仅获取所需的uri来找到图像的大小或类型 问题 您的应用需要找到图像的大小或类型。 这可能是为了向图像标签添加width和height属性,为了调整布局或覆盖图以适合图像或其他多种原因。 但是,...

Global site tag (gtag.js) - Google Analytics