<?php $data = 'QRコードは、(株)デンソーウェーブの登録商標です。'; $data = mb_convert_encoding($data, 'SJIS-win', 'UTF-8'); // クラス QRCode $qr = new QRCode(array('version' => 1, 'maxnum' => 16, 'mode' => QRCode::EM_KANJI)); // データを入力 $qr->addData($data); // 終了処理、これ以後のデータ入力は不可 // 終了処理をせずに出力しようとするとエラー $qr->finalize(); // 出力設定は初期化時、終了処理前、終了処理後のいつでもできる $qr->setFormat(QRCode::FMT_TIFF); $qr->setMagnify(2); $qr->setOrder(-1); // 出力 var_dump($qr->getMimeType()); $qr->outputSymbol('qr.tiff'); // Iterator としてシンボルを一つずつ取得できる $qr->setFormat(QRCode::FMT_BMP); foreach ($qr as $pos => $symbol) { file_put_contents(sprintf('qr%d.bmp', $pos + 1), $symbol); }
function getMinimumQRCode($data, $errorCorrectLevel) { $mode = QRUtil::getMode($data); $qr = new QRCode(); $qr->setErrorCorrectLevel($errorCorrectLevel); $qr->addData($data, $mode); $qrData = $qr->getData(0); $length = $qrData->getLength(); for ($typeNumber = 1; $typeNumber <= 10; $typeNumber++) { if ($length <= QRUtil::getMaxLength($typeNumber, $mode, $errorCorrectLevel)) { $qr->setTypeNumber($typeNumber); break; } } $qr->make(); return $qr; }
<?php // デフォルト値を設定 ini_set('qr.default_format', QR_FMT_PNG); ini_set('qr.default_magnify', 3); $qr = new QRCode(); $qr->addData('foo'); // オブジェクトを複製し、途中から異なる内容のQRコードを作成できる $qr2 = clone $qr; $qr->addData('bar'); $qr->finalize(); $qr->outputSymbol('foobar.png'); $qr2->addData('baz'); $qr2->finalize(); $qr2->outputSymbol('foobaz.png');
<?php require_once "qrcode.php"; //--------------------------------------------------------- print "<h4>明示的に型番を指定</h4>"; $qr = new QRCode(); // エラー訂正レベルを設定 // QR_ERROR_CORRECT_LEVEL_L : 7% // QR_ERROR_CORRECT_LEVEL_M : 15% // QR_ERROR_CORRECT_LEVEL_Q : 25% // QR_ERROR_CORRECT_LEVEL_H : 30% $qr->setErrorCorrectLevel(QR_ERROR_CORRECT_LEVEL_L); // 型番(大きさ)を設定 // 1〜10 $qr->setTypeNumber(3); // データ(文字列※)を設定 // ※日本語はSJIS $qr->addData("QRコード"); // QRコードを作成 $qr->make(); // HTML出力 $qr->printHTML(); //--------------------------------------------------------- print "<h4>型番自動</h4>"; // 型番が最小となるQRコードを作成 $qr = QRCode::getMinimumQRCode("QRコード", QR_ERROR_CORRECT_LEVEL_L); // HTML出力 $qr->printHTML();