Schrift
[thread]8976[/thread]

brauch filehandle



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Froschpopo
 2007-05-08 07:28
#76510 #76510
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
PerlMagick benötigt zum Öffnen eines Bildes entweder einen Dateiname oder ein Dateihandle:
Code: (dl )
1
2
3
4
  $image = Image::Magick->new;
open(IMAGE, 'image.gif');
$image->Read(file=>\*IMAGE);
close(IMAGE);


Ich hab den Inhalt eines Bildes in $photo gespeichert. Wo bekomm ich hier mein Handle her?
Hab schon <$photo> versucht aber geht auch nicht :(
esskar
 2007-05-08 09:01
#76511 #76511
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
was genau ist in $photo gespeichert?
Froschpopo
 2007-05-08 09:04
#76512 #76512
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
[quote=esskar,08.05.2007, 07:01]was genau ist in $photo gespeichert?[/quote]
Der Inhalt eines JPEG-Bildes welches ich aus einer LongBlob (mysql) eingelesen habe! Ich habe deshalb kein Dateihandle aus open() sondern nur den Inhalt der Datei in einem String
esskar
 2007-05-08 09:10
#76513 #76513
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuch mal
Code: (dl )
$image->ReadImage($photo);
Froschpopo
 2007-05-08 09:12
#76514 #76514
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Funkt nicht mit Read und nicht mit ReadImage.
Steht aber auch nichts in der Manual:
http://www.imagemagick.org/script/perl-magick.php#read
Man kann nur den Pfad oder eine Filehandlereferenz übergeben.\n\n

<!--EDIT|Froschpopo|1178601254-->
esskar
 2007-05-08 09:15
#76515 #76515
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
doch
Code: (dl )
1
2
3
4
$image = Image::Magick->new;
$image->Set(size=>'100x100');
$image->ReadImage('xc:white');
$image->Set('pixel[49,49]'=>'red');

vielleicht musst du im new noch die compression mitgeben!
Froschpopo
 2007-05-08 09:24
#76516 #76516
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Mein Script sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
my $data = $dbh->selectrow_array(...); # Aus Datenbank lesen

my $image = Image::Magick->new();
$image->Read($data) && "Kann nicht lesen";
$image->Thumbnailgeometry => 'geometry', width => $w, height => $h);

print $image->ImageTopBlob();


das hat jahrelang super funktioniert. An PerlMagick liegt es nicht.
Ich muss nur wissen, wie man aus einem String ein Filehandle ableiten kann. Irgendwie sowas mit <$data> oder sowas ähnliches\n\n

<!--EDIT|Froschpopo|1178601966-->
GwenDragon
 2007-05-08 13:32
#76517 #76517
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Quote
Ich muss nur wissen, wie man aus einem String ein Filehandle ableiten kann.

open ($path, $path);
Dann steht in $path das FH.

Code: (dl )
$image->Read($data) && "Kann nicht lesen";

Sollte wohl eher
Code: (dl )
$image->Read($data) && die "Kann nicht lesen";

sein?\n\n

<!--EDIT|GwenDragon|1178616991-->
Froschpopo
 2007-05-08 20:05
#76518 #76518
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Und was soll in $path drinne stehen wenn kein Pfad existiert? Fühle mich noch nicht so richtig verstanden.

Nochmal ganz einfach erklärt:

Es gibt keinen Pfad zu einem Bild auf der Festplatte. Die JPEG-Daten befinden sich in einer mySQL Datenbank! Die einzige Möglichkeit an das Bild heranzukommen ist über $DBI::selectrow_array() etc.

Ich möchte das Bild aber gerne mit PerlMagick (ImageMagick) bearbeiten.
PerlMagick benötigt aber entweder ein Filehandle oder einen Pfad zu dem Bild welcher aber nicht existiert da ja das Bild in der Datenbank liegt.

Das Bild wird mit Read() geöffnet.
Read() erwartet entweder ein Filehandle, oder einen Bildpfad.
GwenDragon
 2007-05-08 20:08
#76519 #76519
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
In der Datenbank ist das Bild als Binärcode abgespeichert? BLOB?
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-05-08 07:28.