Thread [Image-Magick] BlobToImage (17 answers)
Opened by Kean at 2013-01-11 12:04

Kean
 2013-01-11 12:04
#164883 #164883
User since
2004-08-18
463 Artikel
BenutzerIn

user image
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.

View full thread [Image-Magick] BlobToImage