Thread Tk stretch image
(2 answers)
Opened by conray at 2010-08-01 04:21 2010-08-01T02:21:04 conray Möchtest du es denn skalieren, also strecken, oder tatsächlich mehrfach nebeneinander darstellen? Allein mit Tk geht es glaube ich nicht, aber du kannst das Bild bspw. mit Imager strecken und dann mit Tk darstellen. (http://groups.google.com/group/comp.lang.perl.tk/b...) Dazu ein Beispielskript: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 #!/usr/bin/perl use strict; use warnings; use MIME::Base64; use Imager; use Tk; use Tk::PNG; # load image: my $img = Imager->new(file => 'test.png') or die Imager->errstr; # tk window: my $mw = tkinit(-title => 'Imager & Tk::Photo'); my $img_lab = $mw->Label( -image => my $photo = $mw->Photo, )->pack( -fill => 'both', -expand => 1, ); # react on resize: $img_lab->bind( '<Configure>' => sub { my $new_img = $img->scale( xpixels => $img_lab->width, ypixels => $img_lab->height, type => 'nonprop', ); $new_img->write( data => \my $data, type => 'png', ) or die $new_img->errstr; $photo->configure(data => encode_base64($data)); }, ); $mw->geometry("=200x200"); MainLoop; Außerdem habe ich noch das hier gefunden. Allerdings habe ich '-sticky' bei Tk::ItemStyle nicht gefunden und wüsste ansonsten nicht, wo man es denn angeben könnte. MfG edit: typo Last edited: 2010-08-01 10:32:28 +0200 (CEST) perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'
|