Thread [Image-Magick] BlobToImage
(17 answers)
Opened by Kean at 2013-01-11 12:04
Ich habe eine Datenbank mit JPG Dateien in form von Blobs.
Momentan lese ich diese mit DBI aus, schreibe sie in eine Datei und lese sie mit Image-Magick wieder ein. Da ich mir diesen Weg über die Festplatte gerne sparen würde, habe ich versucht den eingelesenen Blob mit der Funktion BlobToImage direkt in ein Image-Magick Objekt zu wandeln, bekomme aber leider kein Ergebnis zustande. Hier mein Ansatz: 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 use strict; use warnings; use Image::Magick; use DBI; use MIME::Base64; use Tk::JPEG; use Tk::PNG; my $dsn = "DBI:mysql:database=Fotos;host=127.0.0.1;port=3306"; my $dbh = DBI::->connect( $dsn, 'root', 'root', { RaiseError => 1, PrintError => 0, AutoCommit => 1 } ); my $sql = "SELECT * FROM kartenvorlagen WHERE idkartenvorlagen = '23' LIMIT 1;"; my $sth = $dbh->prepare($sql); $sth->execute; my $ref = $sth->fetchrow_hashref; if ( $sth->rows == 1 ) { my $image = Image::Magick->new; my $blob = $$ref{'Grafik'}; $blob = encode_base64($blob); # Habe es mit und ohne versucht.. $image->BlobToImage($blob); $image->Write('test.jpg'); } Es kommt keine Fehlermeldung aber es wird auch keine Datei erzeugt. Wenn ich den Blob über ein Photo Element in eine Datei speichere und dann mit Image-Magick öffne, kann ich es damit auch wieder speichern. |