Current section

Files

Jump to
wallet_passes lib wallet_passes qr.ex
Raw

lib/wallet_passes/qr.ex

defmodule WalletPasses.QR do
@moduledoc "QR code generation for wallet passes."
@doc "Generates a QR code as an SVG string."
def svg(message, opts \\ []) do
color = Keyword.get(opts, :foreground_color, "#000000")
width = Keyword.get(opts, :size)
svg_opts =
[color: color, background_color: "transparent"]
|> then(fn o -> if width, do: Keyword.put(o, :width, width), else: o end)
message
|> EQRCode.encode()
|> EQRCode.svg(svg_opts)
end
@doc "Generates a QR code as a PNG binary."
def png(message, opts \\ []) do
width = Keyword.get(opts, :size, 200)
message
|> EQRCode.encode()
|> EQRCode.png(width: width)
end
end