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 -%>"/>
    

      

  • 相关阅读:
    marMariaDB & MYSQL flexviews
    tomcat与resin的比较
    nginx 1.4.3能直接升到1.8.1吗
    Docker Compose vs. Dockerfile
    分布式事务 spring 两阶段提交 tcc
    linux下拷贝整个目录
    MySQL :: Fatal error: Can&#039;t change to run as user &#039;mysql&#039;. Please check that the user exists!
    python Drools
    KubeCon CloudNativeCon China 2019
    在mysql中修改表名的sql语句
  • 原文地址:https://www.cnblogs.com/varlxj/p/qrcode_to_base64.html
Copyright © 2011-2022 走看看