34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/custom_rqrcode.rb', line 34
def generateQRcode(options={}, format=:svg)
options = @@defaults.merge(options)
string = options[:info]
size = options[:size] || RQRCode.minimum_qr_size_from_string(string)
level = options[:level] || :h
bg = options[:bg]
bsize = options[:bsize]
geometry = options[:geometry]
gravity = options[:gravity]
fsize = options[:fsize]
fsave = options[:fsave]
qrcode = RQRCode::QRCode.new(string, :size => size, :level => level)
svg = RQRCode::Renderers::SVG::render(qrcode, options)
data = \
if format && format == :svg
svg
else
image = MiniMagick::Image.read(svg) { |i| i.format "svg" }
image.format format
if bg
bg_image = MiniMagick::Image.open bg
bg_image.resize bsize if bsize
image = bg_image.composite(image) do |c|
c.gravity gravity
c.geometry geometry
end
end
image.resize fsize if fsize
image.write fsave if fsave
image.to_blob
end
return data
end
|