d_i_r_t_y has asked for the wisdom of the Perl Monks concerning the following question:

...on the fly using Image::Magick, after pulling out the raw binary data from a DB? i have tried the recommended code:
my $raw_tiff = get_from_DB(); my $image = new Image::Magick ( magick => 'PNG' ); $image->BlobToImage( $raw_tiff ); my $raw_png = $image->ImageToBlob();

This, however, does not work -- the raw tiff is not converted at all, merely returned as-is.

Has anyone got this working?

d_i_r_t_y

Replies are listed 'Best First'.
Re: how do i convert from tiff to png images
by arturo (Vicar) on Jun 13, 2001 at 17:43 UTC

    I believe you've misunderstood what those methods are supposed to do. That bit of code isn't supposed to allow conversion between different graphical formats, it's supposed to get you from a blob to image data (i.e. you get out the binary data that went in as a blob; it doesn't say it will convert to a different format in the process).

    I would assume you want to use convert once you've got the TIFF, but it's not clear from the docs what the Perl hook into that is. You *could* write the file to disk and, since you have the imagemagick stuff installed, spawn a subshell that calls convert:

    $image->write('temp.tiff'); system ("/path/to/convert temp.tiff png:newname.png") && die "Couldn't convert image";

    ( I think you're right to be a little frustrated with those docs, they're not forthcoming on how to use convert in Perl )

    perl -e 'print "How sweet does a rose smell? "; chomp ($n = <STDIN>); +$rose = "smells sweet to degree $n"; *other_name = *rose; print "$oth +er_name\n"'
Re: how do i convert from tiff to png images
by shotgunefx (Parson) on Jun 13, 2001 at 19:01 UTC
    PerlMagick doesn't have a convert method. If you write the file it will automatically convert it based on the saving extension. You would think the docs would have an example or mention such a common task.

    So if this is something you are not going to be doing on every request, I would just save it to a temp file with a ".png" extension, read it back in and store it wherever you wanted it in the first place.

    -Lee

    "To be civilized is to deny one's nature."