使用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 -%>"/>
使用RUBY生成二维码的更多相关文章
- android 使用开源库zxing生成二维码,扫描二维码【转】
转自:http://blog.csdn.net/qq_16064871/article/details/52422723 zxing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库 ...
- Javascript生成二维码(QR)
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...
- 使用jquery.qrcode生成二维码(转)
jQuery 的 qrcode 插件就可以在浏览器端生成二维码图片. 这个插件的使用非常简单: 1.首先在页面中加入jquery库文件和qrcode插件. <script type=" ...
- iOS 生成二维码
首先先下载生成二维码的支持文件 libqrencode 添加依赖库 CoreGraphics.framework. QuartzCore.framework.AVFoundation.framewor ...
- QR code 扩展生成二维码
include './phpqrcode/phpqrcode.php'; //引入QR库 QRcode::png("leo", 'qrcode.png', 'L', 10); ...
- Python 创建本地服务器环境生成二维码
一. 需求 公司要做一个H5手机端适配页面,因技术问题所以H5是外包的,每次前端给我们源码,我们把源码传到服务器让其他人访问看是否存在bug,这个不是很麻烦吗?有人说,可以让前端在他们的服务器上先托管 ...
- C#通过第三方组件生成二维码(QR Code)和条形码(Bar Code)
用C#如何生成二维码,我们可以通过现有的第三方dll直接来实现,下面列出几种不同的生成方法: 1):通过QrCodeNet(Gma.QrCodeNet.Encoding.dll)来实现 1.1):首先 ...
- 使用Spire.Barcode程序库生成二维码
使用Spire.Barcode程序库生成二维码 某天浏览网页发现了一个二维码的程序库.它的描述说他可以扫描二维码图像.我很感兴趣,想试试他是不是会有用.所以我就用了些方法扫描二维码图像来测试一下.结果 ...
- C#运用ThoughtWorks生成二维码
在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二维码的操作,现在介绍一个第三方组件,主要介绍生成二维码,二维码的解析,以及对二维码的相关信息的选择,现在介绍ThoughtWorks用 ...
随机推荐
- Date Time Picker控件
Step1 在界面中添加一个Date Time Picker控件,ID为:IDC_DATETIMEPICKER1 Step2 该控件关联变量 CDateTimeCtrl m_dateCtrl; Ste ...
- Javascript知识四(DOM)
[箴 10:4] 手懒的,要受贫穷:手勤的,却要富足. He becometh poor that dealeth with a slack hand: but the hand of the di ...
- 关于"cin>>"输入成功或失败时的“返回值”(转载)
今天在看c++primer的时候,读到其中这样一段话: When we use an istream as a condition, the effect is to test the state o ...
- BZOJ 1146: [CTSC2008]网络管理Network( 树链剖分 + 树状数组套主席树 )
树链剖分完就成了一道主席树裸题了, 每次树链剖分找出相应区间然后用BIT+(可持久化)权值线段树就可以完成计数. 但是空间问题很严重....在修改时不必要的就不要新建, 直接修改原来的..详见代码. ...
- HBase API详解
一.Java API和HBase数据模型的关系 在Java中,与HBase数据库存储管理相关的类包括HBaseAdmin.HBaseConfiguration.HTable.HTableDescrip ...
- DSP的cache一般在何时会生效,防止在cache使用造成数据不一致
在使用DSP的cache使能所有的ddr操作时,发现如果只是写操作,根据cache的机制,如果没有在了L1级hit,则直接使用write buffer来完成写操作. 假如hit的话,那之前一定发生过读 ...
- 字符串-06. IP地址转换
/* * Main.c * D6-字符串-06. IP地址转换 * Created on: 2014年8月19日 *******测试通过******** *转载:http://blog.csdn.ne ...
- android-SQLite 和 Content
SQLite 游标(Cursor)相当于指向底层数据中结果集的指针,而不是提取和返回结果值的副本,是在结果集中对位置(行)进行控制的管理方式. moveToFirst:把游标移动到查询结果的第一行 m ...
- asp.net core + angular2 的环境配置
国内整个对 asp.net core 和 angular2这些新出来的关注度不是太好.跟国外比很大差距. 我在试着去做这个整合的时候也碰到不少问题. 最后通过查阅大量资料才弄明白. 我想肯定也会有类 ...
- JSP打印九九乘法表
##index.jsp: <%@ page language="java" import="java.util.*" pageEncoding=" ...