Skip to content

spider-gazelle/qr-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crystal Lang QR Code

CI

Native crystal lang QR code, no external dependencies

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      qr-code:
        github: spider-gazelle/qr-code
  2. Run shards install

Usage

require "qr-code"

qr = 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

require "qr-code"

qr = QRCode.new("my string to generate", size: 4, level: :h)
qr.modules.each do |row|
  row.each do |col|
    print col ? '#' : ' '
  end

  print "\n"
end

Rendering a SVG

require "qr-code"

svg_string = QRCode.new("my string to generate").as_svg

Rendering a PNG

you'll need to add stumpy_png to your shard.yml dependencies

require "qr-code"
require "qr-code/export/png"

# size == width, and QR codes are square
png_bytes = QRCode.new("my string to generate").as_png(size: 256)

Credits

Based off the ruby gem: https://github.com/whomwah/rqrcode_core Which was adapted from the javascript library: https://github.com/kazuhikoarase/qrcode-generator