QRコード生成API - Googleの代替
更新:
Googleが提供していたQRコード生成APIが2024年4月頃サービス終了したらしい。
以前から非推奨の状態だったが、とうとう終了した。
というわけで、代わりのAPIを探した。
以下、QR Code Generator と QuickChart の仕様について記す。
QR Code Generator
https://goqr.me/api/
QRコードを作成できるサイトだが、APIも公開されている。
サンプルにある通り、以下のようなURLにアクセスするとQRコードの画像が表示される。
https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=Example
パラメータ(引数)は、dataがQRコードに埋め込むテキスト、sizeが画像の縦横サイズ。
APIドキュメントを見るとパラメータは他にもあり、色を変更することもできる。
dataのみ必須で、それ以外は任意(オプション)。
以下に主なパラメータを記す。
- data
- QRコードに埋め込むテキスト。
最小1文字。
URLを書く場合などはURLエンコードする。
- size
- QRコードの画像の縦横サイズ(ピクセル)。
100x100のように記述する。
最小は10x10。
最大は、png, gif, jpgの場合1000x1000、svg, epsの場合1000000x1000000。
ドキュメントにはデフォルトは 200x200 と書かれているが、実際は 250px で表示される。
他のパラメータもドキュメント通りではない場合があるので注意。
- ecc
- エラー訂正レベル。
L、M、Q、Hを指定する。
L(7%)、M(15%)、Q(25%)、H(30%)の順に修正能力が上がる。
QRコードが汚れている場合などでも読み取れる可能性が上がる。
デフォルトはL。
- color
- QRコードの色。
RGB(赤緑青)を255-0-0のように10進数をハイフンで繋げるか、ff0000 や f00 のように16進カラーコードで指定する。
- bgcolor
- 背景色。
色の指定方法は上記 color と同じ。
- margin
- 画像の上下左右のマージン(余白)。
0~50ピクセルまで指定可能。
- qzone
- これも余白。
marginとの違いがイマイチ分からない。
0~100ピクセルまで指定可能。
- format
- 画像のフォーマット。
png、gif、jpeg、jpg、svg、epsが指定できる。
デフォルトはpng。
すべて小文字で書く。
以上を踏まえて適当にパラメータを繋げると以下のようになる。
https://api.qrserver.com/v1/create-qr-code/?data=https%3a%2f%2fwww.google.co.jp%2f&size=200x200&ecc=Q&qzone=5&margin=5&bgcolor=fc8&color=36f
このQRコードをウェブサイトに表示する場合は、以下のようにimg要素(タグ)のsrc属性にAPIのURLを書く。
<img src="https://api.qrserver.com/v1/create-qr-code/?data=https%3a%2f%2fwww.google.co.jp%2f&size=200x200" width="200" height="200" alt="">
直接APIを使用せず、生成した画像をダウンロードして、それを表示しても良い。
QuickChart
https://quickchart.io/qr-code-api/
QuickChart は、様々なグラフ(チャート)が生成できるAPIを公開しているサイト。
その中にQRコードもある。
サンプルにある通り、以下のようなURLにアクセスするとQRコードの画像が表示される。
https://quickchart.io/qr?text=example
QRコードに埋め込みたい文字やURLをパラメータ(引数)の text に記述する。
本APIもオプションで様々なパラメータがあり、色の変更も可能。
以下に主なパラメータを記す。
- text
- QRコードに埋め込むテキスト。
テキストはURLエンコードした方が良い。
- format
- 画像のフォーマット。
png、svg、base64が指定できる。
デフォルトはpng。
- margin
- 画像周囲のマージン(余白)。
デフォルトは4。
- size
- QRコードの画像の縦横サイズ(ピクセル)。
デフォルトは150。
- dark
- QRコードの色。
RGB(赤緑青)を ff0000 のように16進カラーコードで指定する。
f00 のように3桁でも良い。
デフォルトは000000(black)。
- light
- 背景色。
色の指定方法は上記 dark と同じ。
light=0000 を指定すると透明な背景になる。
デフォルトはffffff(white)。
- ecLevel
- エラー訂正レベル。
L、M、Q、Hを指定する。
L(7%)、M(15%)、Q(25%)、H(30%)の順に修正能力が上がる。
QRコードが汚れている場合などでも読み取れる可能性が上がる。
デフォルトはMで、中心に画像がある場合はH。
以上を踏まえて適当にパラメータを繋げると以下のようになる。
https://quickchart.io/qr?text=https%3a%2f%2fwww.google.co.jp%2f&dark=c00&light=000&size=200&ecLevel=Q
このQRコードをウェブサイトに表示する場合は、以下のようにimg要素(タグ)のsrc属性にAPIのURLを書く。
<img src="https://quickchart.io/qr?text=https%3a%2f%2fwww.google.co.jp%2f&size=200" width="200" height="200" alt="">
直接APIを使用せず、生成した画像をダウンロードして、それを表示しても良い。