ele_eel's diary

プログラムの事を少しと、デジタル系買物記。

QR モジュール for Kohana 3.0.x

必要に迫られたのでQR(2次元バーコード)のモジュールを作りました。
モジュールと言っても http://swetake.com/ さんが公開しているライブラリのラッパークラスです。


使い方の勉強のため Github.com にて公開しています。
https://github.com/ele-eel/kohana-QR

クラスライブラリはこちら
http://swetake.com/qr/

使い方

1. 上記サイトからPHPクラスライブラリをダウンロードして、vendor/qrcode_php ディレクトリに入れる。
2.クラスライブラリ qrcode.php のファイルパスを変更。

define('QRCODE_DATA_PATH', MODPATH.'kohana-qr/vendor/qrcode_php/qrcode_data');

3.bootstrap.php にて、QRモジュールを有効にする。

'kohana-qr' => MODPATH.'kohana-qr', // QR image module

4.サンプル Controller で画像表示を確認する。

http://サイトURL/qr?url=表示したいテキスト

(例) 

サンプルコントローラ Controller_QrUrl

単純に url というパラメータを画像に変換しています。このまま使用するとセキュリティ上好ましくないので、実際に使用する際には修正します。

<?php

class Controller_QrUrl extends Controller {

	public function action_encode()
	{
		try {
			//Edit the header content type.
			$this->request->headers['Content-Type'] = 'image/png';

			//configで画像の設定を行う
			$config = array(
				'version' => 6,    //set_qrcode_version()
				'error_correct' => 'H',    //set_qrcode_error_correct()
				'size' => 2,    //set_module_size()
				'quietzone' => 4,    //set_quietzone()
			);
			echo QR::factory($config)->render($_GET['url'], 'png');
		} catch(ErrorException $e) {
			echo '';
		}
	}
}

画像の分割機能 structureappend

ライブラリには(試験導入)として画像分割機能があって、それ用のメソッドも作ってみましたが、分割はできるものの読み込みエラーとなってしまいます。