zoukankan      html  css  js  c++  java
  • 使用RUBY生成二维码

    二维码现在貌似已经成为一个项目必不可少的总分了,最近在做的微信项目,更是大大的依赖于二维码,微信公众平台提供的临时二维码,局限太多,只能带一个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 -%>"/>
    

      

  • 相关阅读:
    SyncNavigator V8.6.2数据库同步工具安装与卸载
    数据库同步软件|SyncNavigator数据库同步软件 V8.6.2官网下载地址
    sql server两个数据库同步
    怎么实现数据库异地同步备份
    两台服务器数据库同步
    如何实现数据实时同步
    数据库同步软件|SyncNavigator数据库同步软件 V8.6.2
    syncnavigator使用说明
    go 编译
    Go语言实现FastDFS分布式存储系统WebAPI网关
  • 原文地址:https://www.cnblogs.com/varlxj/p/qrcode_to_base64.html
Copyright © 2011-2022 走看看