専用QRコード生成ツール
ブラウザ内でQRコードを生成します。スタイル(形状/位置決めマーク)、グラデーション、ロゴ、外枠、共有機能に対応しています。データをアップロードすることはなく、永久無料で透かしもありません。
永久無料
透かしなし
完全なローカル生成
PNG / SVG
使い方
- タイプ(URL、テキスト、WiFi、vCard、SMS、メール)を選択し、内容を入力または貼り付けます。
- サイズ、余白、色、誤り訂正レベル、スタイル(形状/位置決めマーク)、グラデーション、ロゴ、外枠などを調整します。
- PNGまたはSVG形式を選択します。
- QRコードは自動生成されます。準備ができたら、「ダウンロード」または「コピー」できます。
- ロゴや複雑なスタイルを使用する場合は、誤り訂正レベルをHに上げ、十分な余白(空白)を確保することをおすすめします。
- 印刷/展示に使用する場合は、前景色と背景色のコントラストを高くし、サイズが小さすぎたり、歪みが大きくならないようにしてください。
機能特性
- 完全なフロントエンド生成(アップロードしない)
- PNGとSVG出力に対応
- スタイルをカスタマイズできます:形状、位置決めマーク、角丸、間隔
- グラデーション(多色、多方向)
- ロゴを重ねることができます(誤り訂正レベルを自動で上げるオプションあり)
- 外枠と枠線(角丸カードスタイル)
- 共有とクリップボード(リンク/画像)
- 多言語とテーマに対応
位置検出パターン(Finder)とは何ですか?
二次元コードの四隅のうちの3つの大きな四角形を 位置検出パターン(Finder) と呼び、カメラが二次元コードの位置と角度を素早く見つけ、歪み補正とデコードを行うのに役立ちます。これらは通常、白黒の 7×7 モジュール構造(外側が黒、内側が白、中央が黒)になっています。
- 役割:迅速な位置検出、回転耐性、透視耐性。
- スタイル:このツールは正方形、丸角、および「ドットスタイル」の位置検出パターンのレンダリングをサポートしています(スタイル → Finder で選択)。
二次元コードは誰が発明したのですか?
二次元コード(QRコード)は、1994年に日本の Denso Wave 社のエンジニア 原昌宏(Masahiro Hara) によって発明されました。QRは「Quick Response(迅速な応答)」の略です。
- 発明の動機:自動車部品の生産ラインの識別効率を向上させ、一次元コードの容量と読み取り速度の制限を突破するため。
- 設計のインスピレーション:囲碁の白黒の石とマトリックスパターンが、「モジュール化 + 位置検出図形」の高いロバスト性を持つ設計にインスピレーションを与えました。
- なぜ特許料を支払わなくてもいいのか:Denso Waveは商標と一部の特許を保有していますが、エコシステムの普及を促進するために明確に無料で使用を許可しています(商用利用も可能で、ライセンス料はかかりません)。
標準規格と使用上の提案
- 国際標準:ISO/IEC 18004(QRコード2Dシンボル規格)で、バージョン、マスク、誤り訂正、図形構造などが定義されています。
- 誤り訂正レベル:L/M/Q/Hの4段階(約7%/15%/25%/30%の回復可能)で、ロゴを重ねる場合はより高いレベルを使用することをおすすめします。
- コード化内容:テキスト、URL、vCard、Wi‑Fiなどで、それぞれのURI/データ形式の規格に従うことをおすすめします(例:
WIFI:T:WPA;S:SSID;P:PASS;;)。 - 印刷と表示:前景色と背景色のコントラストと余白のサイズを確保し、過度の歪み、小さすぎるサイズ、過度に密なテクスチャの干渉を避けてください。
- アクセシビリティ:重要な場面では、代替テキスト/リンクを提供し、二次元コードを唯一のアクセス手段にしないようにしてください。
プログラミング言語で二次元コードを生成する
以下に、一般的な言語の最も簡単なサンプルを示します。入門や足場として使うのに適しています。
JavaScript(Node/Browser)
// Node: npm i qrcode
const QRCode = require('qrcode');
QRCode.toFile('qrcode.png', 'https://example.com', { errorCorrectionLevel: 'M' });
// Browser (Canvas):
// <script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/browser.min.js"></script>
QRCode.toCanvas(document.getElementById('canvas'), 'Hello QR', { width: 256 });
Python
# pip install qrcode[pil]
import qrcode
img = qrcode.make('https://example.com')
img.save('qrcode.png')
PHP
// composer require endroid/qr-code
use Endroid\QrCode\QrCode;
use Endroid\QrCode\Writer\PngWriter;
$qr = QrCode::create('https://example.com');
$writer = new PngWriter();
$result = $writer->write($qr);
$result->saveToFile(__DIR__.'/qrcode.png');
Go
// go get -u github.com/skip2/go-qrcode
package main
import "github.com/skip2/go-qrcode"
func main() {
qrcode.WriteFile("https://example.com", qrcode.Medium, 256, "qrcode.png")
}
Java
// Maven: com.google.zxing:core, com.google.zxing:javase
// Minimal ZXing example
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class Main {
public static void main(String[] args) throws Exception {
QRCodeWriter writer = new QRCodeWriter();
BitMatrix matrix = writer.encode("https://example.com", BarcodeFormat.QR_CODE, 256, 256);
BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
ImageIO.write(image, "png", new File("qrcode.png"));
}
}
Rust
// Cargo.toml
// qrcode = "0.13"
// image = "0.24"
use qrcode::QrCode;
use image::Luma;
fn main() {
let code = QrCode::new("https://example.com").unwrap();
let image = code.render<Luma<u8>>().min_dimensions(256, 256).build();
image.save("qrcode.png").unwrap();
}
注意:異なるライブラリがサポートするスタイル機能には大きな差があります。高度なスタイル(ドット、グラデーション、位置検出パターンのスタイル、外枠など)が必要な場合は、このツールでPNG/SVGを生成して直接使用することができます。