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

Fellow Monks,

I am writing a quick script that will snag an image from the internet (using LWP::Simple) and crop the image.

The problem is, I can't get Image::Magick to crop the image as I'd like. The image should be 300 by 200 after crop, with the upper most left pixel in the cropped area is at (115,256). Other methods (chop, resize) will work, but Crop is being incredibly stubborn.

my $o = new Image::Magick; $o->Read("$tempfile"); # Geometry=>'300x200"+"115"+"256', # x=>115, y=>256, width=>300, height=>200, $o->Crop(geometry=>"300x200+115+256"); $o->Write(filename=>"$tempfile", compression=>"none");

Commented info just above the Crop() are just a few of the other methods I've tried.

Also, if anyone could share some information about the geometry format and how to use it, it would be greatly appreciated.

Many thanks in advance.

John J Reiser
newrisedesigns.com

Replies are listed 'Best First'.
Re: Cropping Images using Image::Magick
by shotgunefx (Parson) on Oct 03, 2002 at 03:23 UTC
    Could it be that it's a GIF?, Maybe it's not compressing it and the other browsers aren't recognizing the encoding. I'd try a JPEG to determine if this is the problem.

    From Imagemagick docs
    Note that since Unisys claims a patent on the LZW algorithm (expiring in 2003) used by GIF, ImageMagick binary distributions do not include support for the LZW algorithm so GIF files are written uncompressed. Users are recommended to use the PNG or JPEG formats instead, and should consult the Unisys LZW web page before enabling LZW support.

    -Lee

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

      I changed the output to JPEG, and it works fine.

      my $o = new Image::Magick; $o->Read("$tempfile"); # Geometry=>'300x200"+"115"+"256', # x=>115, y=>256, width=>300, height=>200, $o->Crop(geometry=>"300x200+115+256!"); $o->Write(filename=>"$outfile", compression=>"jpeg");

      Thanks for your help.

      John J Reiser
      newrisedesigns.com

        Your welcome. I think I was bitten by this myself one time.

        Just another piece of obscure image trivia. Occassional encodings of PNGs can make NT 4 lock solid. Nothing to do but pull the plug. From my understanding NT 4 is way down but because of being bitten I prefer to use JPEG encoding to PNG in commercial sites.

        -Lee

        "To be civilized is to deny one's nature."
Re: Cropping Images using Image::Magick
by newrisedesigns (Curate) on Oct 03, 2002 at 03:14 UTC

    Well, I feel silly.

    The method $o->Crop(geometry=>"300x200+115+256!") does in fact work. However, only Internet Explorer will display the image (under W2K). Netscape 6, Opera 6 and the windows version of the Gimp will not display the file, showing nothing but background/transparency. Any clue for why this is happening? Is this an Image::Magick quirk?

    The image is a GIF. Again, I'm sorry for not fully testing a method (but I never would have thought IE would have done something right).

    John J Reiser
    newrisedesigns.com