Oh MyUtils

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');
}

関連ツール