2025/11/24

QR コードの作画:#1)開発のきっかけ

開発のきっかけ

先日、例によって(?)モノ言う読者から『作成中のノーツアプリで QR コードを表示したい!』と連絡がありました。このブログで QR コードの作成手法を過去にまとめたことを知っての依頼と直感しました。しめしめと思い当時のライブラリを引っ張り出し紹介しました。

ところが、残念ながら気に入ってもらえなかったのです...

理由は QR コードが大きすぎるからでした。サンプル然とさせるためもあり QR コードの 1 マスを 5 x 5 Pixel のイメージリソース画像を組み合わせで実現していたためです。

イメージリソースの画像を 1 x 1 Pixel と小さくするだけで対応できると思ったのですが、残念なことにうまくいきません。

DXL で QR コードを書いたときには、イメージリソース間に何もなく、イメージリソースの羅列としていました。ところが、編集モードにして間にカーソルを入れると 10 point と表示され、これが原因で行間があいてることがわかりました。試しにノーツクライアントで全体を選択し、フォントサイズを小さくすると、きれいに表示されます。

整えた文書を DXL 化して、元の DXL と比較しても全く同じだったことから DXL をインポート(保存)する際の問題と判断しました。

これでは DXL をいくら駆使しても解決できないですね...


ないなら作ってしまえ!

対策として思いついたのが、LotusScript で画像ファイルを自力作成する方法です。ビットマップファイルであれば非圧縮でアルゴリズムの簡単なはず。白黒に限定すれば何とかなるかも...と考えました。

ということで、ビットマップの仕様を調べながら、QR コードの画像をビットマップで作成するライブラリの作成に着手しました。


今後の予定と顛末

今回の連載『QR コードの作画』では、ビットマップファイルのファイル構造の紹介とQR コード画像を作成する LotusScript ライブラリを紹介します。せっかく時間をかけて調べたこと、開発したプログラムを無駄にしたくないのでまとめます。わざわざバイナリーで画像ファイルなんて作らんでも...という方は読み飛ばしてください (^ω^;)。

ちなみに、モノいう読者からのリクエストはというと、対応に時間がかかったこともあって、別の方法で実現することとなりました。仲間内の同業者にさらわれることになってちょっと悔しいです...(採用した手法については、ブログ Domino Lab の以下の記事を参照ください)。

Notes でQR コードを作成する

この方法は Java を使った方法となります。私は Java 使いではないこともあって、LotusScript 単独での実現を目標とします。Java が利用できない環境の場合、参考になるかもしれませんね。

ビットマップファイルの作成までは何とか完成したのですが、まさか、最後に大どんでん返しを食らうとは...


QR コードの作画 次回


0 件のコメント:

コメントを投稿