Rmagick快速應用指南

鉴于一些莫名其妙的原因,我不得不帮店铺的几个小妹妹写个能加水印的东东,(为啥不用软件...这是个很纠结的问题..版权他妹的)因此就开始收集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/"[email protected]_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/"[email protected]_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的...希望有资源的兄弟们,能够发上来让我学习下...万分感谢..

你可能感兴趣的:(jquery,nginx,Ruby,Rails,rubygems)