0
6
Login
Code
Issues
1
Pull requests
Events
Packages
main

Introduction

PerlMagick, is an objected-oriented Perl interface to ImageMagick.
Use the module to read, manipulate, or write an image or image sequence
from within a Perl script. This makes it suitable for Web CGI scripts. You
must have ImageMagick 7.0.0 or above installed on your system for this
module to work properly.

See

    https://imagemagick.org/script/perl-magick.php

for additional information about PerlMagick.  If you have problems, go to

    https://github.com/ImageMagick/ImageMagick/discussions

for help.  For instructions about installing ImageMagick, see

    https://imagemagick.org/

Installation

Get the PerlMagick distribution and type the following: 

    gunzip ImageMagick-7.0.10-58.tar.gz
    tar xvf ImageMagick-7.0.10

Follow the ImageMagick installation instructions in INSTALL-unix.txt
	then type

  cd PerlMagick

Next, edit Makefile.PL and change LIBS and INC to include the appropriate
path information to the required libMagick library. You will also need
library search paths (-L) to JPEG, PNG, TIFF, etc. libraries if they were
included with your installed version of ImageMagick. If an extension
library is built as a shared library but not installed in the system's
default library search path, you may need to add run-path information
(often -R or -rpath) corresponding to the equivalent library search
path option so that the library can be located at run-time.

To create and install the dymamically-loaded version of PerlMagick
(the preferred way), execute
    
    perl Makefile.PL
    make
    make install

To create and install a new 'perl' executable (replacing your existing
PERL interpreter!) with PerlMagick statically linked (but other libraries
linked statically or dynamically according to system linker default),
execute

    perl Makefile.PL
    make perl
    make -f Makefile.aperl inst_perl

or to create and install a new PERL interpreter with a different name
than 'perl' (e.g. 'PerlMagick') and with PerlMagick statically linked

    perl Makefile.PL MAP_TARGET=PerlMagick
    make PerlMagick
    make -f Makefile.aperl inst_perl

See the ExtUtils::MakeMaker(3) manual page for more information on
building PERL extensions (like PerlMagick).

For Windows systems, type

    perl Makefile.nt
    nmake install

For Unix, you typically need to be root to install the software.
There are ways around this.  Consult the Perl manual pages for more
information. You are now ready to utilize the PerlMagick routines from
within your Perl scripts.

Installation - Win32 Strawberry perl

On Win32 Strawberry perl the prefered way of installing PerlMagick is the following:

  1. Download and install ImageMagick Windows binaries from https://imagemagick.org/script/binary-releases.php#windows

  2. You HAVE TO choose dynamic (DLL) ImageMagick binaries. Note: it is not possible to mix 32/64bit binaries of perl and ImageMagick

  3. During installation select that you want to install ImageMagick's development files (libraries+headers)

  4. You NEED TO have ImageMagick's directory in your PATH. Note: we are checking the presence of convert.exe or identify.exe tools

  5. You might need Visual C++ Redistributable Package installed on your system. See instructions on ImageMagick's Binary Release webpage.

  6. If you have all prerequisites 1)...5) you can simply install ImageMagick by running: cpan -i Image::Magick

Testing PerlMagick

Before PerlMagick is installed, you may want to execute

    make test

to verify that PERL can load the PerlMagick extension ok.  Chances are
some of the tests will fail if you do not have the proper delegates
installed for formats like JPEG, TIFF, etc.

To see a number of PerlMagick demonstration scripts, type

    cd demo
    make

Example Perl Magick Script

Here is an example script to get you started: 

    #!/usr/bin/perl
    use Image::Magick;

    $q = Image::Magick->new;
    $x = $q->Read("model.gif", "logo.gif", "rose.gif");
    warn "$x" if $x;

    $x = $q->Crop(geom=>'100x100+100+100');
    warn "$x" if $x;

    $x = $q->Write("x.gif");
    warn "$x" if $x;

The script reads three images, crops them, and writes a single image
as a GIF animation sequence.