QRコード生成器 - カスタムQRコード作成 オンライン
URL、テキスト、WiFi、vCard連絡先、メール用QRコードを生成。色カスタマイズ、ロゴ埋め込み、ドットスタイル選択、PNG/SVGダウンロード。
よくある質問
QRコードとは何ですか?
QR(Quick Response)コードは、テキスト、URL、WiFi認証情報、連絡先情報などのデータを格納できる二次元バーコードです。1994年にデンソーウェーブが自動車部品の追跡用に開発したもので、現在ではモバイル決済、マーケティング、認証、情報共有に広く使用されています。
このQRコード生成ツールの使い方は?
1. 入力タイプタブを選択します(テキスト/URL、WiFi、vCard、メール、SMS、電話)。2. フォームフィールドに関連情報を入力します。3. 入力中にQRコードがリアルタイムで自動生成されます。4. オプションで色、ドットスタイル、コーナーをカスタマイズし、ロゴを追加できます。5. PNGまたはSVGでダウンロードするか、クリップボードにコピーします。
データは安全ですか?サーバーに送信されますか?
データは100%安全で、ブラウザから外に出ることはありません。すべてのQRコード生成はJavaScriptとHTML5 Canvas APIを使用してクライアントサイドで行われます。データはサーバーに一切送信されません。
QRコードのエラー訂正とは?
QRコードにはReed-Solomonコードによる組み込みエラー訂正機能があります。L(7%)、M(15%)、Q(25%)、H(30%)の4つのレベルがあります。標準的なQRコードにはM、印刷物にはQ、ロゴ埋め込み時にはHを使用してください。
WiFi QRコードを使うべき理由は?
WiFi QRコードを使えば、訪問者が複雑なパスワードを手入力する必要なく、スマートフォンのカメラでコードをスキャンするだけでネットワークに接続できます。オフィス、カフェ、ホテル、イベントなどで特に便利です。
QRコードの最大データ容量は?
QRコードは最大7,089個の数字、4,296個の英数字、または2,953バイトのバイナリデータを格納できます(エラー訂正レベルL時)。実際には、短いコンテンツほど小さくスキャンしやすいQRコードになります。
QRコードにロゴを追加してもスキャンできますか?
はい、QRコードの中央にロゴを追加できます。信頼性の高いスキャンのために、エラー訂正レベルH(30%回復)を使用し、ロゴサイズをQRコード面積の約20-30%に抑えてください。このツールではロゴ追加時に自動的にエラー訂正がHに設定されます。
コード例
import QRCodeStyling from 'qr-code-styling';
// Basic QR code
const qrCode = new QRCodeStyling({
width: 300,
height: 300,
data: 'https://example.com',
dotsOptions: {
color: '#000000',
type: 'rounded',
},
backgroundOptions: {
color: '#ffffff',
},
qrOptions: {
errorCorrectionLevel: 'M',
},
});
// Append to DOM
qrCode.append(document.getElementById('canvas'));
// Download as PNG
qrCode.download({ name: 'qr-code', extension: 'png' });
// Generate WiFi QR code string
function generateWiFiQR(ssid, password, encryption = 'WPA', hidden = false) {
const escape = (str) => str.replace(/([\\;,:"'])/g, '\\$1');
return `WIFI:T:${encryption};S:${escape(ssid)};P:${escape(password)};H:${hidden};;`;
}
// Generate vCard QR code string
function generateVCardQR({ firstName, lastName, phone, email, org }) {
return [
'BEGIN:VCARD',
'VERSION:3.0',
`N:${lastName};${firstName};;;`,
`FN:${firstName} ${lastName}`,
phone && `TEL:${phone}`,
email && `EMAIL:${email}`,
org && `ORG:${org}`,
'END:VCARD',
]
.filter(Boolean)
.join('\n');
}