您的位置:首页 > 运维架构 > Linux

linux系统 网卡配置命令

2009-07-25 02:32 309 查看
主要参考了/article/4155861.html

1 安装RMagick

下载RMagick-1.14.1_IM-6.3.0-7-Q8 for win32的版本

安装ImageMagick-6.3.0-7-Q8-windows-dll.exe,为了采用这里的字体

然后安装gem包

gem install ImageMagick-6.3.0-7-Q8-windows-dll.exe

修改字体配制文件

ImageMagick-6.3.0-7-Q8-windows-dll.exe的安装目录下,有个config文件目录,修改type-ghostscript.xml文件

或者将附件里面的字体配制文件type-windows.xml拷贝到config目录,然后修改type.xml文件,来加入type-windows.xml文件 

现在可以开始使用RMagick库来生成图片了. 下面是一个验证码实例
先建立一个工程code
在app/model下,建立noisy_image.rb用来具体生成图片的一个模型
require 'rubygems'

require 'Rmagick'

class NoisyImage

  include Magick

  attr_reader :code, :code_image

  Jiggle = 15

  Wobble = 15

 

  def initialize(len)

    chars = ('a'..'z').to_a - ['a','e','i','o','u']

    code_array=[]

    1.upto(len) {code_array << chars[rand(chars.length)]}

    granite = Magick::ImageList.new('xc:#EDF7E7')

    canvas = Magick::ImageList.new

    canvas.new_image(32*len, 50, Magick::TextureFill.new(granite))

    text = Magick::Draw.new

    text.font_family = 'times'

    text.pointsize = 40

    cur = 10

   

    code_array.each{|c|

      rand(10) > 5 ? rot=rand(Wobble):rot= -rand(Wobble)

      rand(10) > 5 ? weight = NormalWeight : weight = BoldWeight

      text.annotate(canvas,0,0,cur,30+rand(Jiggle),c){

        self.rotation=rot

        self.font_weight = weight

        self.fill = 'green'

      }

      cur += 30

    }

    @code = code_array.to_s

    @code_image = canvas.to_blob{

      self.format="JPG"

    }

  end

 

end
因为这个模型,没有和任何数据表有关系,所以不是Active:Record::Base的子类
要想rails可以知道有这个类,并且其他action可以调用这个类,需要在application.rb加入
 model:noisy_image
 
在创建一个控制器code
code_controller.rb加入
def index
    session[:noisy_image] = NoisyImage.new(4) #生成一个有4字符的图片

    session[:code] = session[:noisy_image].code
end
 
在view/code下,建立index.rhtml
登陆

<%=form_tag '/code/login'%>

<table>

<tr>

<td>输入验证码</td><td><%=text_field_tag:code%></td>

</tr>

<tr><td><img height='30' src="/code/code_image"></td></tr>

<tr><td><%=submit_tag '提交'%></td></tr>

</table>

<%=end_form_tag%>
 
通过login action来验证,通过code_image来发送图片给浏览器
下面实现code_controller.rb里面的login和code_image action
 
def code_image

    image = session[:noisy_image].code_image

    send_data image, :type => 'image/jpeg', :disposition => 'inline'

end

  

def login

    if params[:code]==session[:noisy_image].code

      @text="正确"

    else

      @text="不正确"

    end

    render:text=>@text
end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: