MEMORVA
ウェブサイト制作 HTML/JavaScript モバイル Linux 開発 サイト運営

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を使用せず、生成した画像をダウンロードして、それを表示しても良い。


はてなブックマーク X Bluesky