summaryrefslogtreecommitdiff
path: root/script/qr-color.pl
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2011-03-28 21:39:41 +0100
committerdakkar <dakkar@thenautilus.net>2011-03-28 21:40:43 +0100
commit23e7bcb9b266904d5731dbe6e3794bc039f52ceb (patch)
treeb14256d83aad32f9b35f07c7f867a8946539c4e5 /script/qr-color.pl
parentadd border around QR (diff)
downloadqr-builder-23e7bcb9b266904d5731dbe6e3794bc039f52ceb.tar.gz
qr-builder-23e7bcb9b266904d5731dbe6e3794bc039f52ceb.tar.bz2
qr-builder-23e7bcb9b266904d5731dbe6e3794bc039f52ceb.zip
cmdline opts, external data
Diffstat (limited to 'script/qr-color.pl')
-rw-r--r--script/qr-color.pl179
1 files changed, 32 insertions, 147 deletions
diff --git a/script/qr-color.pl b/script/qr-color.pl
index 5942fca..134c887 100644
--- a/script/qr-color.pl
+++ b/script/qr-color.pl
@@ -8,6 +8,8 @@ use GridFiller::Result::Pango;
use feature 'say';
use open ':std',':locale';
use Log::Log4perl qw(:easy);
+use Getopt::Long;
+
Log::Log4perl->easy_init($INFO);
#Log::Log4perl->get_logger('GridFiller')->level($INFO);
@@ -15,13 +17,35 @@ Log::Log4perl->easy_init($INFO);
#Log::Log4perl->get_logger('GridFiller::Status')->level($DEBUG);
#Log::Log4perl->get_logger('GridFiller::Result')->level($DEBUG);
-binmode DATA,':utf8';
+my ($data_file,$words_file,$level,$size,$output_file,$font_descr)
+ =(undef,undef,'M',40,'/tmp/qr.png',undef);
+{
+my $p = Getopt::Long::Parser->new(
+ config => [qw(
+ no_auto_abbrev
+ no_getopt_compat
+ no_gnu_compat
+ require_order
+ no_ignore_case
+ )],
+);
+die unless $p->getoptions(
+ 'd|data=s' => \$data_file,
+ 'w|words=s' => \$words_file,
+ 'l|level=s' => \$level,
+ 's|size=i' => \$size,
+ 'o|output=s' => \$output_file,
+ 'f|font=s' => \$font_descr,
+);
+}
-my $data = do { local $/="\n__WORDS__\n";my $x=<DATA>;chomp $x;$x };
-my @words = <DATA>;chomp @words;
+$level='M' unless $level=~m{^[LMH]$}i;
+
+my $data = do {open my $fh,'<:utf8',$data_file;local $/;<$fh>};
+my @words = do {open my $fh,'<:utf8',$words_file;<$fh>};chomp @words;
my $qr=Text::QRCode->new(
- level=>'H',
+ level=>uc($level),
mode=>'8-bit',
);
@@ -33,9 +57,9 @@ my $filler=GridFiller->new({
});
my $result = GridFiller::Result::Pango->new({
- source_grid => $filler->grid,
- cell_size => 40,
- ( @ARGV ? (font_description => $ARGV[0]) : () ),
+ source_grid => $arr,
+ cell_size => $size,
+ ( $font_descr ? (font_description => $font_descr) : () ),
});
$filler->result($result);
@@ -44,147 +68,8 @@ $filler->status->length($result->length_closure);
$filler->fill();
-$result->save_png('/tmp/qr.png');
+$result->save_png($output_file);
say '';
say 'Leftovers:';
say for @{$result->leftover_words};
-
-__DATA__
-MECARD:N:Ceccarelli,Gianni;TEL:+447564023056;EMAIL:dakkar@thenautilus.net;URL:http://www.thenautilus.net/contacts/;NICKNAME:dakkar;;
-__WORDS__
-Richard Dawkins
-Bruce Schneier
-Lois McMaster Bujold
-Kage Baker
-David Weber
-Robert Heinlein
-Douglas Adams
-Neal Stephenson
-Lewis Carrol
-Terry Pratchett
-Jorge Luis Borges
-Olaf Stapledon
-Frank Herbert
-Alessandro Bergonzoni
-Stefano Benni
-Jules Verne
-Neil Gaiman
-H.G. Wells
-Isaac Asimov
-Arthur C. Clarke
-Philip K. Dick
-JRR Tolkien
-Ed Wood
-Tim Burton
-Monty Python
-Terry Gilliam
-Orson Welles
-Luc Besson
-Peter Greenaway
-David Cronenberg
-Stanley Kubrick
-Joss Whedon
-Quentin Tarantino
-Pedro Almodóvar
-Mel Brooks
-宮崎駿
-MIYAZAKI Hayao
-押井守
-OSHII Mamoru
-庵野 秀明
-ANNO Hideaki
-Alan Moore
-鬼頭 莫宏
-KITOH Mohiro
-手塚 治虫
-TEZUKA Osamu
-ゆうきまさみ
-YUKI Masami
-浦沢 直樹
-URASAWA Naoki
-星野 之宣
-YUKINOBU Hoshino
-安倍 吉俊
-yoshitoshi ABe
-士郎 正宗
-SHIROW Masamune
-Amanda Palmer
-Marian Call
-Jonathan Coulton
-The Flaming Lips
-The Pillows
-Nightwish
-Stefano Nosei
-Jethro Tull
-菅野 よう子
-KANNO Yoko
-Franco Battiato
-Enya
-Helloween
-Mike Oldfield
-Alan Parsons Project
-Emerson, Lake & Palmer
-Fabrizio De André
-川井 憲次
-KAWAI Kenji
-David Bowie
-Girl Genius
-Gunnerkrigg Court
-Cyrano de Bergerac
-Watership Down
-RHPS
-Thunderbirds
-Doctor Who
-The Twilight Zone
-Blade Runner
-Forbidden Planet
-Cowboy Bebop
-フリクリ
-FLCL
-Gundam
-Macross
-ふしぎの海のナディア
-The Secret of Blue Water
-涼みやはるひの消失
-SUZUMIYA Haruhi
-Cutey Honey
-電脳コイル
-Dennou Coil
-灰羽連盟
-Haibane Renmei
-Star Trek
-D&D
-Go
-Shogi
-Perl
-Firefly
-トップをねらえ!
-Gunbuster
-Sandman
-Honor Harrington
-日本語
-Tiffany Aching
-Dune
-Snow Crash
-HHGTTG
-Dirk Gently
-Halo Jones
-Top 10
-Promethea
-Blade Runner
-The Princess Bride
-The Blues Brothers
-Groucho Marx
-平成狸合戦ぽんぽこ
-Pon Poko
-となりのトトロ
-Totoro
-風の谷のナウシカ
-Nausicaä
-攻殻機動隊
-Ghost in the Shell
-新世紀エヴァンゲリオン
-Evangelion
-Powerpuff Girls
-Dresden Codak