エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


QRコード(二次元バーコード)作成サービスを公開

      2021/02/20

QRコード(二次元バーコード)作成サービスを公開

 
QRコード(二次元バーコード)作成サービス
https://s-giken.info/qrcode/index.php
 
QRコード(二次元バーコード)を作成するサービスをリリースしました。
 
※「QRコード」は株式会社デンソーウェーブの登録商標です。
 
 

QRコード(二次元バーコード)作成サービスの特徴

 
ハッキリ言って、他のサイトなどで提供されている QRコード(二次元バーコード)作成サービスと大きな違いはありません。
 
サイトの URL、メールアドレスを始め、ただのテキストの文章などを QRコード(二次元バーコード)の画像に変換して表示する、というものです。
 
作成の際に選択できるオプションは以下のとおりです。
 

  • 画像のサイズ
  • エラー訂正レベル
  • 画像の中の余白のサイズ

 
 

「画像サイズ」オプション

 
「画像サイズ」は、QRコードを画像として生成しますが、その画像自体のサイズをピクセル数で指定するものです。
数値が大きいほど大きな画像になります。
 
01_QRコード(二次元バーコード)作成サービスを公開
 
上記は、縦横 100ピクセル、縦横 200ピクセルのサンプルの QRコードです。
大きな画像にするほど 1つずつのセル(※)の大きさも大きくなりますので、エラーが発生しにくくなります。
QRコードにする文字数によって適切なサイズを指定します。
 
※「セル」とは、QRコードを構成している四角の白黒の点のことです。
 
 
また、印刷することを想定する場合は、より大きな画像で作成し、解像度を高くして印刷することをオススメします。
 
※画面に表示される画像の解像度は 72dpiですが、一般的な印刷物の解像度は 300dpiです。
そのため、印刷を想定する場合は、必要なサイズの 4倍のサイズで作成するといいでしょう。
 
 

「エラー訂正レベル」オプション

 
QRコードには、QRコードのセルが読み取れなかった場合に、情報を自動的に補正して、正しい情報に訂正する仕組みがあります。
そのどれくらい読み取れなくても正しい情報として読み取ることができるか、を決めたものが「エラー訂正レベル」で、「エラー訂正レベル」が高いほど読み取れないセルが多くても正しい情報に変換してくれます。
 
 
02_QRコード(二次元バーコード)作成サービスを公開
 
ただし、「エラー訂正レベル」を高くすると、より多くのセルが必要となりますので、より大きな画像にならざるを得なくなっていきます。
上記の画像は、同じ 100文字の文字列を QRコードにしたものですが、エラー訂正レベルが高いほどセルの大きさが小さくなっています。(セルの数が多くなっています。)
 
設定できるものは下記のもので、デフォルトでは「L」が設定されています。
 
「L : 7%の欠損まで復元可能」
「M : 15%の欠損まで復元可能」
「Q : 25%の欠損まで復元可能」
「H : 30%の欠損まで復元可能」
 
QRコードの「誤り訂正機能」については下記を参照してください。
 
QRコード・誤り訂正機能について
https://www.qrcode.com/about/error_correction.html
 
 
野外で風雨にさらされる場所や、多くの人が触るような場所などに設置する場合は、QRコードが汚れたり破れたりして読み取れないセルも発生する可能性があります。
そのような場所に設置する QRコードの場合は、「エラー訂正レベル」を高いものにしておく方がいいでしょう。
逆に、スマホや PCの画面に QRコード表示するような場合は、「エラー訂正レベル」は低いもので問題ありません。
 
 

「画像の中の余白のサイズ」オプション

 
「画像の中の余白のサイズ」は、作成する画像に対して、どれくらいの余白をとって QRコードを表示させるか、という指定です。
 
数値が 0の場合は、ほぼ余白はありません。
数値が大きくなっていくほど余白が大きくなっていきます。
 
03_QRコード(二次元バーコード)作成サービスを公開
 
上記の画像は、余白「3」です。
 
 

QRコード(二次元バーコード)について

 
QRコードについて詳しく知りたい、という方は下記の本家のサイトを見ていただくことが一番だと思います。
 
QRコードドットコム
https://www.qrcode.com/
 
知らない方もあるかもしれませんが、QRコードは、自動車メーカーの「株式会社デンソー」が開発した二次元バーコードです。
現在は、開発部門を分離、子会社化した「株式会社デンソーウェーブ」が特許を持っています。
 
そして、デンソーウェーブは、「QRコードの特許権を行使しない」と宣言したこともあり、日本国内にとどまらず、世界中で使われるようになっていきました。
また、デンソーウェーブが特許権を行使しないため、我々もこうして QRコードを生成するサービスを自由に提供できるようになっています。
 
 

QRコード生成ライブラリ「cakePHP-QR-Code-Helper」

 
この QRコード(二次元バーコード)作成サービスは、下記の「cakePHP-QR-Code-Helper」をカスタマイズして利用しています。
 
muxe/cakePHP-QR-Code-Helper
https://github.com/muxe/cakePHP-QR-Code-Helper
 
 
詳細は下記の記事に書いていますが、「cakePHP-QR-Code-Helper」は CakePHP2で QRコードを生成するためのライブラリです。
CakePHP3でQRコードを作成、表示するライブラリ「cakePHP-QR-Code-Helper」
QRコード作成ライブラリ「cakePHP-QR-Code-Helper」をPHPで使うカスタマイズ
 
その内部では、Googleがグラフを生成、表示するために提供している API「Google Chart API」が使われています。
 
そのため、この QRコード(二次元バーコード)作成サービスでは、作成した QRコードの画像はサーバ上には持っていません。(QRコードは、「Google Chart API」のサーバで生成しています。)
 
また、QRコードの生成履歴なども残していませんので、過去に生成した QRコードが漏洩すると言った心配はありません。
 
逆に、過去に作成した QRコードを一覧表示したい、といったことはできません。
 
 

「URL短縮サービス・TTTオンライン」でも QRコードを生成している

 
同じ QRコードライブラリ「cakePHP-QR-Code-Helper」を使って作成したサービスとして、「URL短縮サービス・TTTオンライン」があります。
 
URL短縮サービス・TTTオンライン
https://ttt.onl
 
この TTTオンラインを作った知見に基づいて作成したのが、この記事で紹介した「QRコード(二次元バーコード)作成サービス」ですが、TTTオンラインもよろしければこちらも使ってみてください。

 - PHP・Smarty・ECCUBE

GoogleAdwords

GoogleAdwords

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

include、requireのパス指定をdirname(__FILE__)、__DIR__と書く理由

include、requireのパスの指定を dirname(__FILE__)、__DIR__で記述する理由に付いて解説。相対パス、絶対パスを直書き、パスを書かない場合は何が問題かを説明。

AdminerはphpMyAdmin代替のデータベース管理ツール

AdminerはphpMyAdminとほぼ同機能のデータベース管理ツール。PHP 1ファイルのため設置が非常に簡単で軽快に動作し、phpMyAdminの置き換えで使うのも問題なし。

XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()

XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。

ECCUBEでカード決済NGの受注情報をマイページ購入履歴に表示しない方法解説

ECCUBEでカード決済に失敗しても購入履歴一覧に注文情報(受注情報)が表示される問題への対処方法を解説。受注情報レコードの作成の流れとステイタスについても解説。

ファイル変更だけ!ECCUBEの本番から開発環境をコピーする手順を解説

ECCUBEを本番から開発環境をコピーする際の手順を解説。PGMメンテに必要な開発環境を構築する手順を解説。ECCUBEの仕組みは簡単なので作業は5分ほど。

数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!
数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!

PHPでintegerとdoubleが混在するような計算をする場合は要注意!計算結果が整数値であっても途中で使用する変数にdoubleの値が入っているときは計算結果がintegerではない場合があります。

Basic認証の.htaccess、.htpasswd生成ツールと解説

Basic認証を設定する際に必要となる.htaccess、.htpasswdファイルを生成するツール。ID、PASS、.htpasswdへのパスを入力することで編集する情報を生成します。

PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある

PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。

指定した数で文字列を丸める関数substr、mb_substr、mb_strimwidthの違い
指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い

文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。

ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集

ECCUBEの注文完了画面にクリテオのタグを編集する方法を紹介。標準機能では完了画面に注文IDや購入商品の情報を渡さないため改修が必要です。