[magick-users] perl pixel manipulator

Anthony Thyssen anthony at griffith.edu.au
Thu Oct 25 04:21:45 PDT 2007


Henjo on  wrote...
| I'm trying to create a perl subroutine which reads an image (png),
| manipulates certain pixel values, and writes the modified image to disk.
| 
| So far, I'm just trying to load the image and write it back unaltered,
| without touching the RGBA pixels.
| But alas, it's not doing anything..
| 
| sub modifyImage {
| 	# load image
|         $f = 'input.png';
|         $original = Image::Magick->new;
|         $original->Read($f);
|         $original->Set(magick=>'RGBA');
| 
|         $blob = $original->ImageToBlob();
| 
|         @rgbavals = unpack "C*",$blob;
| 
|         # do stuff here
| 	# access array of pixels somehow and modify it (@rgbavals ?)
| 
|         $blob = pack "n*", at rgbvals;
| 
| 	# write image
|         $new = Image::Magick->new(magick=>'png');
|         $new->BlobToImage(@blob);
|         $new->Write('output.png');
| }
| 
| What am I doing wrong? Could someone please correct my routine?
| 
I added a few weeks ago a Perl Pixel Iterator example to the PerlMagick
'demos' area.  I designed it to work in a simular way to the -fx
command but more perl orientated.  Typically it is installed in
/usr/share/docs/ImageMagick-perl-*/demos/

But you will need a recent IM to find it there.  Or you can download it
from the IM sources areas.


  Anthony Thyssen ( System Programmer )    <A.Thyssen at griffith.edu.au>
 -----------------------------------------------------------------------------
  Please leave a wish after the tone and, very shortly it will be our command.
      - Smoke from a Magic Lamp   -- Terry Pratchett  ``Sourcery''
 -----------------------------------------------------------------------------
     Anthony's Home is his Castle     http://www.cit.gu.edu.au/~anthony/


More information about the Magick-users mailing list