This is an rMQR Code image generator implemented in Python. This is implemented based on ISO/IEC 23941:2022.
Please verify an image generated by this software whether it can decode correctly before use.
pip install rmqrcode
from rmqrcode import rMQR
import rmqrcode
data = "https://oudon.xyz"
qr = rMQR.fit(
data,
ecc=rmqrcode.ErrorCorrectionLevel.M,
fit_strategy=rmqrcode.FitStrategy.MINIMIZE_WIDTH
)
The ecc
parameter is an enum value of rmqrcode.ErrorCorrectionLevel
to select error correction level. The following values are available:
ErrorCorrectionLevel.M
: Approx. 15% Recovery Capacity.ErrorCorrectionLevel.H
: Approx. 30% Recovery Capacity.
The fit_strategy
parameter is enum value of rmqrcode.FitStrategy
to specify how to determine size of rMQR Code. The following values are available:
FitStrategy.MINIMIZE_WIDTH
: Try to minimize width.FitStrategy.MINIMIZE_HEIGHT
: Try to minimize height.FitStrategy.BALANCED
: Try to keep balance of width and height.
Here is an example of images genereated by each fit strategies for data Test test test
:
from rmqrcode import QRImage
image = QRImage(qr, module_size=8)
image.show()
image.save("my_qr.png")
To select rMQR Code size manually, use rMQR()
constructor.
qr = rMQR('R11x139', ErrorCorrectionLevel.H)
qr.make("https://oudon.xyz")
R11x139
means 11 rows and 139 columns. The following table shows available combinations.
27 | 43 | 59 | 77 | 99 | 139 | |
---|---|---|---|---|---|---|
R7 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
R9 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
R11 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
R13 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
R15 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
R17 | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
The rMQR Code has the four encoding modes Numeric, Alphanumeric, Byte and Kanji to convert data efficiently. However, this package supoprts only Byte mode currently.
Mode | Supported? |
---|---|
Numeric | |
Alphanumeric | |
Byte | ✅ |
Kanji |
The word "QR Code" is registered trademark of DENSO WAVE Incorporated.
http://www.denso-wave.com/qrcode/faqpatent-e.html