diff options
author | dakkar <dakkar@thenautilus.net> | 2010-12-02 21:57:14 +0000 |
---|---|---|
committer | dakkar <dakkar@thenautilus.net> | 2010-12-02 21:57:14 +0000 |
commit | e423da62532558968e1a66bc04c193ffffd38d43 (patch) | |
tree | 3abfabe318ab23ff0c243cc4b3fc2e0219dc7fe5 /script/qr-color.pl | |
parent | fix length for status, begin pango/cairo (diff) | |
download | qr-builder-e423da62532558968e1a66bc04c193ffffd38d43.tar.gz qr-builder-e423da62532558968e1a66bc04c193ffffd38d43.tar.bz2 qr-builder-e423da62532558968e1a66bc04c193ffffd38d43.zip |
proper length measurement
also, fix vertical placement off-by-one
Diffstat (limited to 'script/qr-color.pl')
-rw-r--r-- | script/qr-color.pl | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/script/qr-color.pl b/script/qr-color.pl index 2c7735f..807ec25 100644 --- a/script/qr-color.pl +++ b/script/qr-color.pl @@ -10,7 +10,10 @@ use open ':std',':locale'; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init($INFO); -Log::Log4perl->get_logger('GridFiller::Result::Pango')->level($DEBUG); +#Log::Log4perl->get_logger('GridFiller')->level($INFO); +#Log::Log4perl->get_logger('GridFiller::Chooser')->level($DEBUG); +#Log::Log4perl->get_logger('GridFiller::Status')->level($DEBUG); +#Log::Log4perl->get_logger('GridFiller::Result')->level($DEBUG); binmode DATA,':utf8'; @@ -29,16 +32,21 @@ my $filler=GridFiller->new({ grid=> $arr, }); -$filler->result( - GridFiller::Result::Pango->new({ - source_grid => $filler->grid, - }) -); +my $result = GridFiller::Result::Pango->new({ + source_grid => $filler->grid, +}); + +$filler->result($result); $filler->status->mode('longest'); -$filler->status->length(sub { int(length(shift)/2) }); -$filler->fill(); +$filler->status->length( + sub { + my $p = $result->layout_for_word(shift); + my ($w,$h) = $p->get_pixel_size; + return int(0.5 + $w / $result->cell_size); + } +); -my $result=$filler->result; +$filler->fill(); $result->save_png('/tmp/qr.png'); |