class QRCode – QRCode object

The qrcode object is an attrtuple returned by Image.find_qrcodes(). Each instance describes a decoded QR-code: its bounding box, decoded payload, decoder metadata (version, ECC level, mask, data type, ECI), the four detected corners, and convenience boolean flags identifying the encoding of the payload.

Fields are accessible by attribute name (qrcode.payload) or by index (qrcode[0]). The object has no public constructor.

class image.qrcode

Please call Image.find_qrcodes() to create this object.

Bounding box and corners

x

Bounding box top-left x coordinate, in pixels. Integer. Index [0].

y

Bounding box top-left y coordinate, in pixels. Integer. Index [1].

w

Bounding box width, in pixels. Integer. Index [2].

h

Bounding box height, in pixels. Integer. Index [3].

corners

4-tuple of (x, y) integer tuples for the four detected corners of the QR code, sorted clockwise starting from the top-left corner. Index [10].

rect

(x, y, w, h) 4-tuple of the bounding box. Suitable for passing directly to drawing/cropping methods such as Image.draw_rectangle() or Image.crop(). Index [15].

Decoded payload

payload

Decoded payload string. Index [4].

Decoder metadata

version

QR-code version, 1 – 40. Higher versions encode more data and have larger modules. Integer. Index [5].

ecc_level

Error-correction level, 0 – 3 (corresponding to L / M / Q / H). Higher values reserve more codewords for error correction. Integer. Index [6].

mask

Mask pattern, 0 – 7. Used by the QR-code encoder to choose the module pattern that minimises decoder confusion. Integer. Index [7].

data_type

Encoding of the payload as the decoder reported it. One of the following bitmask values: 1 numeric, 2 alphanumeric, 4 binary, 8 Kanji. See the per-flag attributes below for a friendlier form. Integer. Index [8].

eci

Extended Channel Interpretation value. Encodes the text encoding used for the bytes in the payload (e.g. UTF-8 versus ISO-8859-1). Integer. Index [9].

Encoding flags

is_numeric

True if data_type indicates a numeric payload. Index [11].

is_alphanumeric

True if data_type indicates an alphanumeric payload. Index [12].

is_binary

True if data_type indicates a binary payload. Check eci to determine the text encoding when this is True. Index [13].

is_kanji

True if data_type indicates a Kanji payload. Kanji symbols are 10 bits per character and MicroPython does not parse this encoding – the payload must be treated as a byte array. Index [14].