Schrift
[thread]11146[/thread]

TK während der laufzeiit JPGs anzeigen

Leser: 1


<< >> 5 Einträge, 1 Seite
Gast Gast
 2008-01-16 18:23
#104795 #104795
Hallo,
ich möchte mit TK verschiedene Bilder downloaden und die sollen mit dann in der grafischen Oberfläche angezeigt werden.
also quasi so:

lade bild 1.jpg an
zeige bild1.jpg an
klicke buttonx
lade bild2.jpg
zeige bild2.jpg anstelle von bild1.jpg an

leider hab ich keine Vorstellung wie ich das lösen kann

kann mir einer helfen?
renee
 2008-01-16 18:26
#104796 #104796
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
runterladen mit CPAN:LWP::Simple, dann anzeigen:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl

use strict;
use warnings;
use Tk;
use Tk::Photo;
use Tk::JPEG;


my $mw     = tkinit();
$mw->geometry( '600x845' );
my $image  = './proxy.jpg';
my $photo  = $mw->Photo( 'test', -height => 845, -width => 600, );
$photo->read( $image );
$mw->Label( -image => $photo )->pack;

MainLoop;


(ungetestet)

Der Rest ist Deine Aufgabe ;-)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-01-16 22:09
#104805 #104805
ich danke dir gib es auch die möglichkeit das bild etwas zu vergößern?

die änderung des wertes bei -height und -width brachte leider nicht den gewünschten erfolg.
ptk
 2008-01-16 23:06
#104807 #104807
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Man kann mit Tk leider nicht beliebig skalieren. Dazu braucht man andere Module, z.B. GD, Imager oder Image::Magick.
styx-cc
 2008-01-21 00:49
#104971 #104971
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Hey, hab auf meiner Platte ein Testscript gefunden was dir helfen koennte:
Code: (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
#!/usr/bin/perl -w
use strict;

use Tk;
use Tk::JPEG;
use Tk::Photo;
use GD;
use MIME::Base64;

my $mw = tkinit(-title => 'Tests with Images');
main_gui($mw);
MainLoop;


### Subroutines ###

sub main_gui {
$mw = shift;
my $frame_left = $mw->Frame(-background => 'red', -width => 130, -height => 500);
my $frame_right = $mw->Frame(-background => 'blue', -width => 170, -height => 500);
my $frame_center = $mw->Frame(-background => 'yellow', -width => 500, -height => 400);
my $frame_bottom = $mw->Frame(-background => 'green', -width => 500, -height => 100);

$frame_left ->grid(-row => 0, -column => 0, -rowspan => 2);
$frame_right ->grid(-row => 0, -column => 2, -rowspan => 2);
$frame_center->grid(-row => 0, -column => 1);
$frame_bottom->grid(-row => 1, -column => 1);


my $image_data = newFromJpeg GD::Image('DSCF0334.JPG') || die $!;
$image_data->flipVertical();
$image_data = encode_base64( $image_data->jpeg(100) );

my $image = $frame_center->Photo(-data => $image_data );
my $small_foto = $mw->Photo;
$small_foto->copy($image, -subsample => 5,5);
$image->blank();
$frame_center->Label( -image => $small_foto )->pack();
}


Der Quelltext ist haesslich, aber funktioniert.
Mit $image_data->flipVertical(); spiegel ich das Bild vertikal und mit $small_foto->copy($image, -subsample => 5,5); veraendere ich seine Groesse, genaueres kannst du der CPAN:GD-Doku entnehmen.

MfG
Pörl.
<< >> 5 Einträge, 1 Seite



View all threads created 2008-01-16 18:23.