Skip to content

OUDON/rmqrcode-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

An rMQR Code Generator

reop-url

This is an rMQR Code image generator implemented in Python. This is implemented based on ISO/IEC 23941:2022.

📌 Important Notice

Please verify an image generated by this software whether it can decode correctly before use.

🚀 Installation

pip install rmqrcode

📕 Basic Usage

CLI

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.

Generate rMQR Code

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: Example of fit strategies

Save as image

from rmqrcode import QRImage

image = QRImage(qr, module_size=8)
image.show()
image.save("my_qr.png")

📚 Advanced Usage

Select rMQR Code size manually

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

🛠️ Under the Hood

Encoding modes

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

About

Rectangular Micro QR Code (rMQR Code) Generator in Python

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •