Skip to content

DNET_QRCode

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

QRコード

概要

  • QRコード処理について纏める。

  • QRコード

    • デンソーが発明したマトリックス型二次元コード。
    • バーコードより多くの情報を盛り込める。
    • 「QR」は Quick Response の頭字語(高速読み取りを目的の一つにする)

詳細

用途

元々は製造ラインでの部品管理を目的に開発された。

入力手段

入力が手間であるスマホの入力手段

  • 自由入力
  • URL
  • メアド
  • 地図座標
  • , etc.

決済サービス

QRコード決済

XXXX券

券代替

  • 馬券
  • 入場券
  • 乗車券
  • 航空券

種類

モデル1・2

  • モデル1

    • 最初に作られたQRコード
    • 最大バージョンは14 (73 * 73セル)
    • 数字1167桁まで扱うことができる。
  • モデル2

    • モデル1を改良したコード
    • コードが歪んでしまった場合でも読取り出来る。
    • コード内部にアライメントパターンを配置
    • 最大バージョンは40 (177 * 177セル)
    • 数字7089桁まで扱うことができる。

マイクロQR

  • 切り出しシンボルが一つ
  • 小さなスペースへの印字を可能とする。
  • 格納できるデータ量はそれほど多くない。
  • バージョンM1-4までの4バージョンがある。

iQRコード

  • コードの位置や大きさが簡単に読み取れるマトリックス方式の2次元コード

  • 広範囲に渡るコードを生成できる。

    • 従来のQRコードやマイクロQRコードより小型
    • より多くのデータを格納できる大型コード
    • 長方形、表裏反転・白黒反転・ドットパターンなどをサポート
  • 従来のQRコードよりも多くの情報量を格納

    • 同じサイズなら情報量 80% 増量可能
    • 同じ情報量ならサイズ 30% 縮小可能

フレームQR

コードの内部に

  • 自由に画像を入れられる領域を持ち、
  • フレームの形状、色も自由に変更できる。

生成

読取

WebRTC

WebRTC

  • HTMLからカメラへのアクセスは、
    WebRTC の MediaDevices.getUserMediaで行う。

  • 後述の、getUserMediaとjsQRを使用したDEMO appサンプル
    iphoneで、上手く動かないが、コレは以下に起因している可能性がある

性能

  • ハードとソフトの性能依存である。

  • スマホ用の「マクロ(接写)レンズ」の利用が効果的らしい。

  • また、以下の項目の影響を受ける。

    • サイズ

      • 大きい方が識別し易い。
      • バージョン(セル数)が大きくなれば、
        当然、推奨のサイズも大きくなる。
    • 解像度
      高い方が識別し易い。

    • 余白の有無
      5セル分の余白が欲しいらしい。

    • 色数

      • 識別し易い。
        白黒2色のQRコード

      • 識別し難い。
        ・絵や文字が重なっているQRコード
        ・模様が入った用紙に印刷されたQRコード

    • バージョン
      アライメントパターンがひとつの方が良いらしい。

    • モデル1 or 2
      モデル2の方が識別し易い。

  • 参考

サンプル

Native(サンプル)

(元 Wiki では見出しのみで本文が無い。)

Web(サンプル)

実装

以下からDLして下さい。

説明

  • 以下の[HTML5] QRCode Readerを改修した実装。

    • フロント・カメラからリア・カメラに変更した。
    • iPhoneで問題となるため、videoタグに必要な属性を追加した。
  • この一式をHTTPSで通信可能な
    Webサーバに配置してスマホからアクセスして下さい。
    WebRTCを使用するには、HTTPSが必要になるため)

ライブラリ

Native(ライブラリ)

ZXing

このライブラリを起点に、様々な言語への移植が行われている。

ZXing .NET

, etc.

Web(ライブラリ)

qrcode.js

コチラは、生成用

jsqrcode

コチラは、読取用。

jsQR

コチラは、読取用。

参考

作成

以下のサイトから作成可能。

指定可能なセル数からして、モデル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, デンソーウェーブ

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally