本站首页    管理页面    写新日志    退出


«October 2025»
1234
567891011
12131415161718
19202122232425
262728293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7624308
建立时间:2006年5月29日




[Ruby on Rails]Rmagick验证码
软件技术

lhwork 发表于 2007/2/7 14:39:20

class Part < ActiveRecord::Base require 'RMagick' require "cgi"   include Magick attr_reader :code, :code_image  #类的2个属性   Jiggle = 15   Wobble = 15 def initialize(len)   #chars = ('a'..'z').to_a-['a','e','i','o','u']   code_array=[]   codex=""   rr=0   1.upto(5) {     rr=65+rand(25)     code_array << rr     }            #随机生成5个大写字母   #code_array=[rand(rr).chr,rand(rr).chr,rand(rr).chr,rand(rr).chr]   #1.upto(len) {code_array << chars[rand(chars.length)]}   granite = Magick::ImageList.new('granite:')    #生成granite样式的背景   canvas = Magick::ImageList.new    #定义一个画布   canvas.new_image(24*4,20, Magick::TextureFill.new(granite))   #granite放画布上   text = Magick::Draw.new    #文字   #text.font_family = 'times'   text.pointsize = 20                  #文字大小   cur = 10   code_array.each{|c|      c=c.to_i      c=c.chr      codex=codex+c               #acs码(数字)转为字母     #rand(10) > 5 ? rot=rand(Wobble):rot= -rand(Wobble)     rand(10) > 5 ? weight = NormalWeight : weight = BoldWeight     ra=1000     while ra<100000         ra=rand(999999)     end     rn='#'+ra.to_s     text.annotate(canvas,20,20, cur,18,c){      #text对象放canvas上       self.rotation=rand(30)                     #旋转角度       self.font_weight = weight            self.fill = rn                              #text(文字)颜色     }     cur += 15   }   @code = codex                                #生成文字(字符串格式)     @code_image = canvas.to_blob{              #生成图片(二进制格式)     self.format="JPG"   } end


阅读全文(2962) | 回复(1) | 编辑 | 精华
 


回复:Rmagick验证码
软件技术

 你个大SB(游客)发表评论于2007/7/6 18:50:31

转载请注明出处,煞笔


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.063 second(s), page refreshed 144818668 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号