今回の地震にあたり、大学時代一緒に過ごした人たち、後輩の
緊急連絡網を作成しようということで、情報を送ってもらったのですが、
携帯電話に打ち込むのが面倒くさすぎるということで、QRコードにしたら
カメラで取るだけなので簡単じゃねって思って作った。
イメージ
example/ディレクトリで以下のコマンドを実行すると次のような
HTMLが生成されます。
% cd example % perl qrcode_html.pl sample.list > sample.html % firefox sample.html
以下の HTMLが出力されます。
![]() |
送信者 blog |
入力データ
入力データは Perl形式にしました。YAMLとかでも良かったのかもしれない
けど、Perl形式にしとけば、'perl -wc'で文法チェックできていいかなと
思いました。以下のような感じで、runメソッドの引数にハッシュリファレンスを
渡して、必要な情報を与えます。
my $app = QRCode::Carrier::JP->new(); my @contact_infos = $app->run({ id1 => { memory => 'Twitter:yamada', name1 => '山田 太郎', name2 => 'ヤマダ タロウ', mail_addresses => [ 'yamada_taro@pc.example.com', ], telephones => [ '090-1234-5678', ], address => '〇〇県〇〇市1-1', } });
QRコード生成
runメソッドの戻り値は QRCode::Carrier::JP::ContactInfoインスタンスの
配列です。一応画像として出力させるメソッド output_qrcodeというのも
あるのですが、今回は HTMLに dataスキームとして埋め込みたかったので、
qrcode_as_base64というメソッドの方が使えるかと思います。
というか出力の方は全然テストできていないです。
使用方法は以下のような感じです。
# As Base64 my $base64_docomo = $contact_info->qrcode_as_base64('docomo'); my $base64_au = $contact_info->qrcode_as_base64('au'); my $base64_softbank = $contact_info->qrcode_as_base64('softbank'); # Output image contact_info->output_qrcode('docomo', 'docomo.png'); contact_info->output_qrcode('au', 'au.png'); contact_info->output_qrcode('softbank', 'softbank.png');
このあたりについては example/のテンプレートファイル sample.txを
参考にしてください。