-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_QRCode
- 戻る(その他の技術)
-
QRコード処理について纏める。
-
QRコード
- デンソーが発明したマトリックス型二次元コード。
- バーコードより多くの情報を盛り込める。
- 「QR」は Quick Response の頭字語(高速読み取りを目的の一つにする)
元々は製造ラインでの部品管理を目的に開発された。
入力が手間であるスマホの入力手段
- 自由入力
- URL
- メアド
- 地図座標
- , etc.
QRコード決済
券代替
- 馬券
- 入場券
- 乗車券
- 航空券
-
モデル1
- 最初に作られたQRコード
- 最大バージョンは14 (73 * 73セル)
- 数字1167桁まで扱うことができる。
-
モデル2
- モデル1を改良したコード
- コードが歪んでしまった場合でも読取り出来る。
- コード内部にアライメントパターンを配置
- 最大バージョンは40 (177 * 177セル)
- 数字7089桁まで扱うことができる。
- 切り出しシンボルが一つ
- 小さなスペースへの印字を可能とする。
- 格納できるデータ量はそれほど多くない。
- バージョンM1-4までの4バージョンがある。
-
コードの位置や大きさが簡単に読み取れるマトリックス方式の2次元コード
-
広範囲に渡るコードを生成できる。
- 従来のQRコードやマイクロQRコードより小型
- より多くのデータを格納できる大型コード
- 長方形、表裏反転・白黒反転・ドットパターンなどをサポート
-
従来のQRコードよりも多くの情報量を格納
- 同じサイズなら情報量 80% 増量可能
- 同じ情報量ならサイズ 30% 縮小可能
コードの内部に
- 自由に画像を入れられる領域を持ち、
- フレームの形状、色も自由に変更できる。
- Native(ライブラリ(Native)を参照)
- Web(ライブラリ(Web)を参照)
-
HTMLからカメラへのアクセスは、
WebRTC の MediaDevices.getUserMediaで行う。 -
後述の、getUserMediaとjsQRを使用したDEMO appサンプルが
iphoneで、上手く動かないが、コレは以下に起因している可能性がある。- 【iPhone】【Safari】getUserMediaで取ったMediaStreamをvideoタグにセット
しても最初のフレームだけ描画されて止まってしまう問題【React】 - DRYな備忘録
https://otiai10.hatenablog.com/entry/2019/11/11/090124
- 【iPhone】【Safari】getUserMediaで取ったMediaStreamをvideoタグにセット
-
ハードとソフトの性能依存である。
-
スマホ用の「マクロ(接写)レンズ」の利用が効果的らしい。
-
また、以下の項目の影響を受ける。
-
サイズ
- 大きい方が識別し易い。
- バージョン(セル数)が大きくなれば、
当然、推奨のサイズも大きくなる。
-
解像度
高い方が識別し易い。 -
余白の有無
5セル分の余白が欲しいらしい。 -
色数
-
識別し易い。
白黒2色のQRコード -
識別し難い。
・絵や文字が重なっているQRコード
・模様が入った用紙に印刷されたQRコード
-
-
バージョン
アライメントパターンがひとつの方が良いらしい。 -
モデル1 or 2
モデル2の方が識別し易い。
-
-
参考
-
QRコード認識について | ファイル管理ソフト「ファイル管理革命Lite」
パナソニック ソリューションテクノロジー株式会社 | Panasonic
https://www.panasonic.com/jp/company/pstc/products/fileocr_l/qr_sample.html -
QRコードの読み取れる最小サイズを検証!
【商用無料】QRコードお役立ち情報【QR】
https://b.qrqrq.com/2018/06/25/qrcode-check-the-smallest-qrcode/
-
(元 Wiki では見出しのみで本文が無い。)
以下からDLして下さい。
-
以下の[HTML5] QRCode Readerを改修した実装。
- フロント・カメラからリア・カメラに変更した。
- iPhoneで問題となるため、videoタグに必要な属性を追加した。
-
この一式をHTTPSで通信可能な
Webサーバに配置してスマホからアクセスして下さい。
(WebRTCを使用するには、HTTPSが必要になるため)
このライブラリを起点に、様々な言語への移植が行われている。
- GitHub - zxing/zxing:
ZXing ("Zebra Crossing") barcode scanning library for Java, Android
https://github.com/zxing/zxing
- GitHub - micjahn/ZXing.Net:
.Net port of the original java-based barcode reader and generator library zxing
https://github.com/micjahn/ZXing.Net
- JavaScriptでQRコードをスキャンするライブラリまとめ - Qiita
https://qiita.com/shora_kujira16/items/a9e3aa0b06525c00a7e0
コチラは、生成用
- GitHub - soldair/node-qrcode: qr code generator
https://github.com/soldair/node-qrcode
コチラは、読取用。
-
特徴
-
リポジトリ
-
LazarSoft/jsqrcode: Javascript QRCode scanner
https://github.com/LazarSoft/jsqrcode- LazarSoft
http://lazarsoft.info/ - Web QR
https://webqr.com/
- LazarSoft
-
-
サンプル・サイト
-
ネイティブアプリ不要!モバイルWebサイトに
QRコードリーダーを実装する方法 – WPJ
https://www.webprofessional.jp/create-qr-code-reader-mobile-website/ -
以下は、jsqrcodeのフォーク
-
コチラは、読取用。
-
特徴
- ZXing非依存のJavaScriptライブラリ。
- CommonJS(JavaScriptの該当節を参照)形式で書かれたモダンなライブラリ。
- そのため、HTML上から使用するにはwebpack等が必要。
-
リポジトリ
- cozmo/jsQR:
A pure javascript QR code reading library.
This library takes in raw images and will locate,
extract and parse any QR code found within.
https://github.com/cozmo/jsQR
- cozmo/jsQR:
-
サンプル・サイト
-
Webの技術だけで作るQRコードリーダー - Qiita
https://qiita.com/kan_dai/items/4331aae12f5f2d3ad18d- Simple QR Reader
https://simple-qr.netlify.com/ - KanDai/simple-qr-reader: QR code reader made with PWA
https://github.com/KanDai/simple-qr-reader
- Simple QR Reader
-
QR コードを連続で読み取れる Web アプリを作った | Basicinc Enjoy Hacking!
https://tech.basicinc.jp/articles/193- DEMO app
https://lightning-qr.zaru.dev/ - GitHub repository
https://github.com/zaru/lightning-qr-reader
- DEMO app
-
[HTML5] QRコードリーダーを作成する
https://blog.katsubemakito.net/html5/qrcode-reader- [HTML5] QRCode Reader
https://miku3.net/html5/qrreader/
・webpackで処理した jsQR を、更にminifyして使用している。
・それ故、HTML/CSS/JavaScriptしか知らなくても、実装を理解できる。
- [HTML5] QRCode Reader
-
-
QRコードドットコム|株式会社デンソーウェーブ
https://www.qrcode.com/ -
QRコード - Wikipedia
https://ja.wikipedia.org/wiki/QR%E3%82%B3%E3%83%BC%E3%83%89
以下のサイトから作成可能。
- URLのQRコード作成【無料】
https://www.cman.jp/QRcode/qr_url/
指定可能なセル数からして、モデル2を生成している。
Google画像検索で検索可能。
移行メモ
[[ZXing>#s7a7537c]]は同ページ内に存在しないアンカを指していたため、 実在する ZXing の節へのリンクとした。- 元 Wiki の打ち消し線記法(
%%〜%%)は Markdown の~~〜~~に置き換えた。- 元 Wiki では見出しそのものが他ページ・同ページ内へのリンクになっていた箇所 (「生成」配下、「読取」の「WebRTC」)は、GitHub Wiki では 見出しからアンカが生成されるため、見出しをプレーン・テキストとし、 リンクは直下の本文(箇条書き)に置いた。
- 同名の見出し(「Native」「Web」)がサンプルとライブラリで重複し GitHub Wiki でアンカが衝突するため、括弧で文脈を補って一意にした。
- PukiWiki のページ内アンカ(
#xxxxxxxx)は GitHub Wiki では再現できないため、 同一ページ内のアンカは見出しから生成されるアンカに張り替え、 他ページのアンカを指すリンクは「〜(ページ名の該当節を参照)」の形に置き換えた。
Tags: 移行, QRコード, 二次元コード, jsQR, ZXing, WebRTC, getUserMedia, デンソーウェーブ
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。