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)

0.10.0 (Feb 11, 2016)

0.9.0 (Jan 3, 2016)

0.8.1 (Jan 3, 2016)

0.8.0 (Dec 18, 2015)

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.

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 ↑

www.rubydoc.info/gems/rqrcode

Resources ↑

Authors ↑

Original author: Duncan Robertson

Special thanks to the following people for submitting patches:

Contributing ↑

MIT License (www.opensource.org/licenses/mit-license.html)