エス技研

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


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

   

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

 
QRコード(二次元バーコード)作成サービス
https://s-giken.info/qrcode/index.php
 
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.

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

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

  関連記事

PHP画面が真っ白 header(“Location: $url”);

PHPの開発で header(“Location: $url”);を使うと画面が真っ白になる不具合が出る場合もあります。

PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)

PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。

GMOペイメントゲートウェイのjava.io.IOExceptionのエラー

ECCUBEの決済でGMOペイメントゲートウェイのモジュールを使ってテスト決済を行った場合の不具合、java.io.IOExceptionと言うエラーの原因と対策方法の解説です。

フォルダを指定してファイルのパーミッションを変更するプログラム

フォームからフォルダ、パーミッションを指定しパーミッションを変更するサンプルプログラムの解説です。

乱数発生器(パスワード生成サービス)がバージョンアップで高速化!
乱数発生器(パスワード生成サービス)がバージョンアップで高速化!

乱数やパスワードを生成する乱数発生器を高速化!重複しない10桁、20桁の文字列を10万件、20万件と生成することも可能!イベントのキャンペーンのシリアルコードなどにも利用可能!

ECCUBE mtb_constants initパラメータ設定の項目を追加する方法

ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。

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

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

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

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

Smartyの Syntax Errorの原因はスペースかも

Smartyのなかなか原因がつかめない Syntax Errorの原因はスペースかもしれません。

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

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