コマンドラインでrMQRコードを生成する

はじめに

rMQRコードを生成したくなり、コマンドラインでできないか調べたところ、Zintを使うとできたのでその方法について記事にします。

rMQRコードとは

rMQRコード(長方形マイクロQRコード)は、2022年5月に発表された長方形型の新しいQRコードで、従来のQRコードが印字できなかった狭いスペースへの印字や、マイクロQRコードより多くの情報を格納したいというニーズに対応します。 最大のコードの大きさは17×139セルで、その場合は数字で361文字、英数字で219文字、バイナリで150文字、漢字で92文字のデータを格納できます。 rMQRコードは2022年5月にISO/IEC 23941として規格化されています。

Zintとは

Zint(libzint)は、バーコードを生成するためのオープンソースのライブラリです。 クロスプラットフォームに対応していて、50種類以上のバーコードの規格に対応しています。 ZintはQtを採用したGUI、CLIアプリ、C言語のライブラリとして利用できます。 Zintは従来のQRコード、マイクロQRコード、rMQRコードのいずれも対応しています。

方法

「QR Code」という文字列を格納したrMQRコードを生成するには以下のコマンドを実行します。

1
zint -b RMQR -d "QR Code" -o rmqr-code.png --quietzones --scale=4

rMQRコード

このrMQRコードは以下のQRコードとマイクロQRコードと同じ内容を格納しています。

1
2
zint -b QRCODE -d "QR Code" -o qr-code.png --quietzones --scale=4
zint -b MICROQR -d "QR Code" -o micro-qr-code.png --quietzones --scale=4

QRコード マイクロQRコード

-bオプションはバーコードの種類を指定します。 利用可能なバーコードの種類はzint -tで確認できます。 既定値はCode 128です。

データは-dオプションによってコマンドラインから、または-iオプションによってファイルから入力します。

-oオプションは出力ファイルを指定します。 これを指定しない場合はout.pngに出力されます。 ファイル形式は拡張子または--filetypeオプションに基づいて決定されます。

--quietzonesオプションはマージンを追加します。 QRコードは4セル、マイクロQRコードとrMQRコードは2セルのマージンが必要なので仕様に準拠する場合にはこのオプションを指定します。

--scaleオプションを指定すると画像のスケールを変更できます。

これら以外にも、色を変更するオプション、誤り訂正レベルを変更するオプションなど様々なオプションが存在します。

1
zint -b RMQR --fg=9C1313 -i input.txt -o colored-rmqr-code.png --quietzones --scale=4 --secure=4

「Rectangular Micro QR Code」

終わりに

コマンドラインでQRコードとマイクロQRコードを生成する方法はqrencodeや私が開発しているqrtoolなどを知っていましたが、rMQRコードを生成する方法は知らなかったので今回知ることができて良かったです。

参考文献

Hugo で構築されています。
テーマ StackJimmy によって設計されています。