使用RUBY生成二维码

作者: 灰色逻辑
发布时间:2015-07-13 11:31:33

二维码现在貌似已经成为一个项目必不可少的总分了,最近在做的微信项目,更是大大的依赖于二维码,微信公众平台提供的临时二维码,局限太多,只能带一个ID,做不了太多有意义的整个,因为我们很多的二维码是需要自己生成的,并且由于是动态生成,没有保存的需求,一般来说,先生成二维码,再保存到硬盘,再把路径返回,以后再删除,感觉太浪费时间和太折腾了

还好项目面向的都是现代浏览器,都支持image/data这样直接加载base64数据的,我们可以把图片直接生成base64字符串,这样就不用保存,直接显示给用户了

 

生成二维码用到的rqrcode和rqrcode_png

rqrcode生成二维码数据,不过没有生成图片的功能,在它的文档中,是用表格来模拟二维码的一个个像素的

rqrcode_png是在rqrcode的基础上,增加了to_img功能,即把rqrcode生成的二维码数据转成png图片,方便用于保存

我是先安装的rqrcode再安装rqrcode_png的,但是在Gemfile中只引用了rqrcode_png,不知道是否两者都一定要安装。同时看到rqrcode_png貌似引用 RMagick,我是早就装好的,也没用确认是否是必须。

PS:二维码中的中文也正常显示

代码如下:

 

#在action中的代码  def qrcode      qr = RQRCode::QRCode.new( '这是你要生成的二维码数据', :size => 4, :level => :h )      @qrcode_str = Base64.encode64( qr.to_img.resize(400,400).to_s )        #如果要保存的话,如下      qr.to_img.resize(400, 400).save("my_qrcode.png")  end      #在view中显示,很好用,很暴力  <img src="data:image/png;base64,<%= @qrcode_str -%>"/>  

  

标签: Ruby
来源:http://www.cnblogs.com/varlxj/p/qrcode_to_base64.html

推荐: