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
Generate an rMQR Code image from your command line, use rmqr
command:
rmqr 'Text data' 'my_qr.png'
See the help to list the options:
➜ rmqr -h
usage: rmqr [-h] [--ecc {M,H}] [--version VERSION] [--fit-strategy {min_width,min_height,balanced}]
DATA OUTPUT
positional arguments:
DATA Data to encode.
OUTPUT Output file path
optional arguments:
-h, --help show this help message and exit
--ecc {M,H} Error correction level. (default: M)
--version VERSION rMQR Code version like 'R11x139'.
--fit-strategy {min_width,min_height,balanced}
Strategy how to determine rMQR Code size.
Alternatively, you can also use in python scripts:
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