Perlで、QRコードを生成する(CGI編)。

Perlで、QRコードを生成する - undiscoの日記の、CGI版です。

qrディレクトリを作って、権限を与えておけばそこに生成されます。

#!/usr/bin/perl
use strict;
use warnings;
use GD;
use GD::Barcode::QRcode;
use CGI;

my $q = new CGI;
my $url = $q->param('url') || 'no';

print "Content-Type: text/html; charset=Shift_JIS", "\n\n";

print <<HEAD;
<html>
  <head>
	<meta http-equiv="content-type" content="text/html; charset=shift_jis"/>
	<title>QRコード生成システム</title>
  </head>
  <body>
HEAD

print <<BODY;
<h3>QRコード生成システム</h3>
<form name="form" action="./qr_gene.pl" method="get">
URLを入力してください:<input type="text" name="url" value="http://" style="ime-mode: disabled;">
<input type="submit" value="生成">
</form>
BODY

if($url ne 'no'){
my $text = "$url";
my $qr = GD::Barcode::QRcode->new($text, { Ecc => 'M', Version => 3, ModuleSize => 2 })->plot();
my $fh;
open($fh,">","qr\/qr.gif");
print $fh ($qr->gif);
close $fh;

sleep 0.5; #タイムアウト対策
print "<img src=\"qr\/qr.gif\"><br />\n";
print "${url}<br />\n";
print "画像を右クリックして、「名前をつけて画像を保存」してください。";
}

print <<FOOT;
<br>
</body>
</html>
FOOT