rQRCode, Encode QRCodes¶ ↑
All users of rqrcode are highly recomended to upgrade to version 0.5.5 ore later!
Short changelog¶ ↑
0.10.1 (Feb 11, 2016)
-
Changed so that gem wont include images and tests.
0.10.0 (Feb 11, 2016)
-
Merged as_ansi by Andy Brody
0.9.0 (Jan 3, 2016)
-
Added support for auto selecting qrcode size up to level 40. (only worked up to level 10 before)
-
Added numeric support during auto selection of qrcode mode.
0.8.1 (Jan 3, 2016)
-
Remove active support specific
present?
. -
Fix so that all tests are run.
0.8.0 (Dec 18, 2015)
-
Added numeric QR code support
-
Dropped Ruby v1.8 support
Overview¶ ↑
rQRCode is a library for encoding QR Codes in Ruby. It has a simple interface with all the standard qrcode options. It was adapted from the Javascript library by Kazuhiko Arase.
Let's clear up some rQRCode stuff.
-
rQRCode is a ruby only library It requires no native libraries. Just Ruby!
-
It is an encoding library. You can't decode QR codes with it.
-
The interface is simple and assumes you just want to encode a string into a QR code
-
QR code is trademarked by Denso Wave inc
Installing¶ ↑
You may get the latest stable version from Rubygems.
gem install rqrcode
Using rQRCode¶ ↑
require 'rqrcode' qrcode = RQRCode::QRCode.new("http://github.com/") image = qrcode.as_png svg = qrcode.as_svg html = qrcode.as_html string = qrcode.as_ansi string = qrcode.to_s
Image Rendering¶ ↑
SVG¶ ↑
The SVG renderer will produce a stand-alone SVG as a String
qrcode = RQRCode::QRCode.new("http://github.com/") # With default options specified explicitly svg = qrcode.as_svg(offset: 0, color: '000', shape_rendering: 'crispEdges', module_size: 11)
ANSI¶ ↑
The ANSI renderer will produce as a string with ANSI color codes.
qrcode = RQRCode::QRCode.new("http://github.com/") # With default options specified explicitly svg = qrcode.as_ansi_(light: "\033[47m", dark: "\033[40m", fill_character: ' ', quiet_zone_size: 4)
PNG¶ ↑
The library can produce a PNG. Result will be a
ChunkyPNG::Image
instance.
qrcode = RQRCode::QRCode.new("http://github.com/") # With default options specified explicitly png = qrcode.as_png( resize_gte_to: false, resize_exactly_to: false, fill: 'white', color: 'black', size: 120, border_modules: 4, module_px_size: 6, file: nil # path to write ) IO.write("/tmp/github-qrcode.png", png.to_s)
HTML Rendering¶ ↑
In your controller¶ ↑
@qr = RQRCode::QRCode.new( 'https://github.com/whomwah/rqrcode', :size => 4, :level => :h )
In your view¶ ↑
<%= raw @qr.as_html %>
CSS¶ ↑
table { border-width: 0; border-style: none; border-color: #0000ff; border-collapse: collapse; } td { border-left: solid 10px #000; padding: 0; margin: 0; width: 0px; height: 10px; } td.black { border-color: #000; } td.white { border-color: #fff; }
On the console¶ ↑
qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h ) puts qr.to_s
Output:
xxxxxxx x x x x x xx xxxxxxx x x xxx xxxxxx xxx x x x xxx x xxxxx x xx x xxx x ... etc
Doing your own rendering¶ ↑
qr = RQRCode::QRCode.new( 'my string to generate', :size => 4, :level => :h ) qr.modules.each do |row| row.each do |col| print col ? "X" : " " end print "\n" end
Specifying QR code mode¶ ↑
Sometimes you may want to specify the QR code mode explicitly.
It is done via the mode
option. Allowed values are:
number
, alphanumeric
and byte_8bit
.
qr = RQRCode::QRCode.new( '1234567890', :size => 2, :level => :m, :mode => :number )
API Documentation¶ ↑
Resources¶ ↑
-
wikipedia:: en.wikipedia.org/wiki/QR_Code
-
Denso-Wave website:: www.denso-wave.com/qrcode/index-e.html
-
kaywa:: qrcode.kaywa.com
Authors¶ ↑
Original author: Duncan Robertson
Special thanks to the following people for submitting patches:
-
Vladislav Gorodetskiy
Contributing¶ ↑
-
Fork the project
-
Send a pull request
-
Don't touch the .gemspec, I'll do that when I release a new version
Copyright¶ ↑
MIT License (www.opensource.org/licenses/mit-license.html)