Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

PerlMagick segfault

by Sihal (Pilgrim)
on Apr 07, 2003 at 08:27 UTC ( [id://248535]=perlquestion: print w/replies, xml ) Need Help??

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

Fellow monks:
I'm trying the following thing with Image::Magick. As you can see, it's all very simple, but it segfaults when trying to write the image in wbmp format..
Does anyone have any clues?
#!/usr/bin/perl use Image::Magick ; my @files = grep { /png/ } `ls` ; foreach my $f (@files) { chomp $f ; my $loc = Image::Magick->new; $loc->Read($f); $loc->Set(monochrome => "True") ; $loc->Set(monochrome => "True",matte =>"True") ; my ($w, $h, $size, $format) = $loc->Ping("$f"); $w = 1+int(($w-1)/8); $w *= 8; my $bg = Image::Magick->new; $bg->Set(debug =>"All") ; $bg->Set(size=>$w."x$h"); # $bg->Set(type => "Grayscale") ; $bg->Set(monochrome => "True") ; $bg->ReadImage('xc:white'); $bg->Composite(image=>$loc, gravity=>"Center"); undef $loc; $bg->Set(monochrome => "True",matte =>"True") ; $bg->Write("wbmp:foo.wbmp") ; last; }

Replies are listed 'Best First'.
Re: PerlMagick segfault
by PodMaster (Abbot) on Apr 07, 2003 at 08:48 UTC
    Why aren't you doing any error checking? See ICON TO BMP (using Image::Magick) for hints ;)

    Also, just use my @files = glob '*.png'; instead of that grep/ls nonsense.


    MJD says you can't just make shit up and expect the computer to know what you mean, retardo!
    I run a Win32 PPM repository for perl 5.6x+5.8x. I take requests.
    ** The Third rule of perl club is a statement of fact: pod is sexy.

      True, no error checking, this was just to provide an example of what i'm trying to do...
      Apparently there seems to be an issue with the png/wbmp conversion process. Can't find any info on how to solve it though
Re: PerlMagick segfault
by Sihal (Pilgrim) on Apr 07, 2003 at 09:39 UTC
    Okay this is how I solved it, didn't manage to find the segfault reason though, just providing a quick way to do the job:
    my $mime_data = shift ; my ($orig, $x); $orig = Image::Magick->new ; $orig->BlobToImage($mime_data) ; my ($w, $h, $size, $format) = $orig->Ping(blob => $mime_data); $w = 1+int(($w-1)/8); $w *= 8; # Creating bg for composite image my $bg = Image::Magick->new ; $bg->Set(size=>$w."x$h",monochrome =>"True",magick =>"png"); $bg->ReadImage('xc:white'); $bg->Composite(image=>$orig, gravity=>"Center"); my $blob = $bg->ImageToBlob() undef ($orig,$bg) ; my $final = Image::Magick->new ; $final->BlobToImage($blob) ; $final->Set(magick => "wbmp") ; $blob = $final->ImageToBlob() ; undef $final ; return $blob ;

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://248535]
Approved by Aristotle
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2025-02-08 22:56 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which URL do you most often use to access this site?












    Results (95 votes). Check out past polls.