3.1 KiB
QR Code Generator Module
Since | Origin / Contributor | Maintainer | Source |
---|---|---|---|
2018-10-20 | https://github.com/nayuki/QR-Code-generator.git integrated by Tom Sutcliffe | Tom Sutcliffe | qrcodegen.c |
This module wraps the QR Code Generator API written in C by https://github.com/nayuki/QR-Code-generator.git for producing a QR Code.
qrcodegen.encodeText()
Generates a QR Code from a text string. In the most optimistic case, a QR Code at version 40 with low ECC can hold any UTF-8 string up to 2953 bytes, or any alphanumeric string up to 4296 characters, or any digit string up to 7089 characters.
Syntax
qrcodegen.encodeText(text, [options])
Parameters
text
The text or URL to encode. Should be UTF-8 or ASCII.options
An optional table, containing any of:minver
the minimum version according to the QR Code Model 2 standard. If not specified, defaults to1
.maxver
the maximum version according to the QR Code Model 2 standard. If not specified, defaults to40
. Specifying a lower maximum version reduces the amount of temporary memory the function requires, so it can be worthwhile to specify a smaller value if you know thetext
will fit in a lower-version QR Code.ecl
the error correction level in a QR Code symbol. Higher error correction produces a larger QR Code. One of:qrcodegen.LOW
(default if not specified)qrcodegen.MEDIUM
qrcodegen.QUARTILE
qrcodegen.HIGH
mask
the mask pattern used in a QR Code symbol. An integer 0-7, orqrcodegen.AUTO
(the default).boostecl
defaults to false.
Returns
The QR Code, encoded as a string. Use qrcodegen.getSize()
and qrcodegen.getPixel()
to extract data from the result. If the text cannot be represented within the given version range (for example it is too long) then nil
is returned.
Example
qrcode = qrcodegen.encodeText("https://nodemcu.readthedocs.io/", {minver=1, maxver=4})
print("Size:", qrcodegen.getSize(qrcode))
qrcodegen.getSize()
Syntax
qrcodegen.getSize(qrcode)
Parameters
qrcode
a QR Code string, as returned byqrcodegen.encodeText()
.
Returns
Returns the side length in pixels of the given QR Code. The result is in the range [21, 177].
qrcodegen.getPixel(qrcode, x, y)
Get the color of the pixel at the given coordinates of the QR Code. x
and y
must be between 0
and the value returned by qrcodegen.getSize()
.
Parameters
qrcode
a QR Code string, as returned byqrcodegen.encodeText()
.x
y
Returns
true
if the given pixel is black, false
if it is white.
Example
qrcode = qrcodegen.encodeText("https://nodemcu.readthedocs.io/", {maxver=4})
size = qrcodegen.getSize(qrcode)
for y = 0, size-1 do
local row = {}
for x = 0, size-1 do
row[x + 1] = qrcodegen.getPixel(x, y) and "*" or " "
end
print(table.concat(row))
end