Schrift
[thread]5210[/thread]

Binary mit Tk::Photo anzeigen.

Leser: 2


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
zipster
 2006-06-19 17:19
#45666 #45666
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Hi,

ich habe ein Bild für meine MySQL Datenbank in ein Binary umgewandelt.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
...
my $bild;
open(IMG, "$bild_auswahl");
binmode(IMG);
{
local $/ = undef;
$bild = $dbh->quote(<IMG>);
}
close(IMG);

# in datenbank einfügen
my $sth = $dbh->do("UPDATE kontakte SET bild = $bild WHERE id = $ref_hash_haupt->{'id'}")|| die $DBI::errstr;
...


Jetzt würde ich gern das Bild auch wieder im Interface anzeigen lassen.
Wie muss ich vorgehen?

Ich habe es so probiert. Hab aber eine Fehlermeldung bekommen
Code: (dl )
1
2
$potrait = $frame_kontakte_haupt->Photo(-data => $ref_hash_haupt->{bild});  
my $bild = $frame_kontakte_haupt->Label(-image => $potrait, -width => "90", -height => "120")->grid(-row=>'0', -column=>'8', -rowspan => '6', -sticky => 'w');


Quote
couldn't recognize image data at C:/Perl/site/lib/Tk/Image.pm line 21.


Gruss
Seri aka zipster
GwenDragon
 2006-06-19 22:42
#45667 #45667
User since
2005-01-17
14538 Artikel
Admin1
[Homepage]
user image
Ist das Bild als auch als BLOB abgespeichert?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

ptk
 2006-06-20 09:20
#45668 #45668
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Leider(*) müssen Bilder bei Tk Base64-encoded vorliegen, wenn man mit -data arbeitet. Es sei denn, man arbeitet mit nicht-binären Dateiformaten wie XBM oder XPM.

(*) Eine Einschränkung des originalen Tcl-Interfaces.
esskar
 2006-06-20 09:36
#45669 #45669
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
also dann so

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use MIME::Base64 qw(encode_base64);

# ...
if(open(my $img, "< $bild_auswahl")) {  
  binmode $img;

my $bild;
  {
     local $/ = undef;
     $bild = $dbh->quote(encode_base64(<$img>));
  }
  close $img;

  # in datenbank einfügen
  my $sth = $dbh->do("UPDATE kontakte SET bild = $bild WHERE id = $ref_hash_haupt->{'id'}")|| die $DBI::errstr;
} else {
  die "Unable to open $bild_auswahl: $!";
}
# ...
\n\n

<!--EDIT|esskar|1150781932-->
zipster
 2006-06-20 11:06
#45670 #45670
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Aha... gut zu wissen. ;)
Es funktioniert jetzt.
Habs aber so gemacht.
Code: (dl )
1
2
3
...
$potrait = $frame_kontakte_haupt->Photo(-data => encode_base64($ref_hash_haupt->{bild}), -format=>'jpeg');
...


Danke Jungs und Mädels für eure Hilfe

:laugh:

Ne Frage hätte ich aber noch. Ich würde gern das Bild im Interface neu anpassen. Habe es so probiert. Hat aber nicht wirklich geholfen.
Code: (dl )
1
2
$potrait->configure("-data" => encode_base64($bild_upload));
$bild->configure(-image => $potrait);


Habt ihr ne bessere Lösung?

Danke noch mal ;)


Gruss

Seri aka Zipster
renee
 2006-06-20 11:29
#45671 #45671
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du danach mal ein update gemacht?

Evtl. musst Du auch ein neues Photo-Objekt erstellen...
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/
zipster
 2006-06-20 12:16
#45672 #45672
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
Quote
Evtl. musst Du auch ein neues Photo-Objekt erstellen...

JOP das hat geholfen. ;)
Da hätte ich auch selbst drauf kommen können.

DANKE!!!!
esskar
 2006-06-20 12:49
#45673 #45673
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=zipster,20.06.2006, 09:06]Habs aber so gemacht.
Code: (dl )
1
2
3
...
$potrait = $frame_kontakte_haupt->Photo(-data => encode_base64($ref_hash_haupt->{bild}), -format=>'jpeg');
...
[/quote]
hmm.
dann konvertierst du das bild jedesmal wenn du es anzeigst.
das ist eigentlich sehr ungeschickt. meine variante konvertiert das bild genau einmal - und zwar genau dann, wenn es in der db abgelegt wird!
zipster
 2006-06-20 12:51
#45674 #45674
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
esskar
 2006-06-20 13:54
#45675 #45675
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
weil das jedesmal zeit kostet!
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2006-06-19 17:19.