Image::Base::Magick -- draw images using Image Magick
use Image::Base::Magick; my $image = Image::Base::Magick->new (-width => 100, -height => 100); $image->rectangle (0,0, 99,99, 'white'); $image->xy (20,20, 'black'); $image->line (50,50, 70,70, '#FF00FF'); $image->line (50,50, 70,70, '#0000AAAA9999'); $image->save ('/some/filename.png');
Image::Base::Magick is a subclass of Image::Base,
Image::Base::Magick
Image::Base
Image::Base Image::Base::Magick
Image::Base::Magick extends Image::Base to create or update image files using Image::Magick.
Image::Magick
The native ImageMagick drawing has hugely more features, but this module is a way to point Image::Base style code at an ImageMagick canvas and use the numerous file formats ImageMagick can read and write.
Colour names are anything recognised by ImageMagick,
http://imagemagick.org/www/color.html file:///usr/share/doc/imagemagick-doc/html/www/color.html #RGB 1, 2, 4-digit hex #RRGGBB #RRRRGGGGBBBB names roughly per X11 colors.xml file
colors.xml is in /etc/ImageMagick-6/, or maybe /etc/ImageMagick/, or maybe /usr/share/ImageMagick-6.6.0/config/.
By default ImageMagick uses "anti-aliasing" to blur the edges of lines and circles drawn. This is unlike the other Image::Base modules but currently it's not changed or overridden in the methods here. Perhaps that will change, or perhaps only for canvases created by new() (as opposed to supplied in a -imagemagick parameter). You can turn it off explicitly with
new()
-imagemagick
my $m = $image->get('-imagemagick'); $m->Set (antialias => 0);
The Graphics::Magick module using the graphicsmagick copy of imagemagick should work, to the extent it's compatible with imagemagick. There's nothing to choose Graphics::Magick as such currently, but a Graphics::Magick object can be created and passed in as the -imagemagick target,
Graphics::Magick
my $m = Graphics::Magick->new (size => '200x100') $m->ReadImage('xc:black'); my $image = Image::Base::Magick-new (-imagemagick => $m);
As of graphicsmagick 1.3.12, there's something bad in its Perl XS interface causing segfaults attempting to write to a file handle, which is what $image->save() does. An $m->Write() to a file works.
$image->save()
$m->Write()
See "FUNCTIONS" in Image::Base for the behaviour common to all Image-Base classes.
$image = Image::Base::Magick->new (key=>value,...)
Create and return a new image object. A new image can be started with -width and -height,
-width
-height
my $image = Image::Base::Magick->new (-width => 200, -height => 100);
Or an existing file can be read,
my $image = Image::Base::Magick->new (-file => '/some/filename.png');
Or an Image::Magick object can be given,
$image = Image::Base::Magick->new (-imagemagick => $mobj);
Setting these changes the size of the image.
In the current code a Resize() is done which means the existing image is stretched, but don't depend on that. It might make more sense to crop when shrinking and pad with black when extending.
Resize()
The underlying Image::Magick object.
-file
undef
The filename for load or save, or passed to new to load a file.
load
save
new
The filename is used literally, it doesn't have ImageMagick's "%d" scheme for sets of numbered files. The code here is only geared towards a single image in a canvas, and using the filename literally is the same as other Image::Base modules.
-file_format
The file format as a string like "PNG" or "JPEG", or undef if unknown or never set.
load() sets -file_format to the format read. Setting -file_format can change the format for a subsequent save(), or set the format for a newly created image.
load()
save()
This sets the magick attribute of the ImageMagick object. The available formats are per
magick
http://imagemagick.org/www/formats.html file:///usr/share/doc/imagemagick-doc/html/www/formats.html
Some of the choices are pseudo-formats, for example saving as "X" displays a preview window in X windows, or "PRINT" writes to the printer.
-quality_percent
The image quality when saving to JPEG and similar lossy formats which compress by reducing colours and resolution in ways not too noticeable to the human eye. 100 means full quality, no such reductions. undef means the imagemagick DefaultImageQuality, which is 75.
DefaultImageQuality
This attribute becomes the quality parameter to $imagemagick->Write().
quality
$imagemagick->Write()
-zlib_compression
The amount of data compression to apply when saving. The value is Zlib style 0 for no compression up to 9 for maximum effort. -1 means Zlib's default, usually 6. undef or never set means ImageMagick's default, which is 7.
This attribute becomes the quality parameter to $imagemagick->Write() when saving PNG.
For reference, ImageMagick (as of version 6.7.7) doesn't read or write the cursor "hotspot" of XPM format, so there's no -hotx and -hoty options.
-hotx
-hoty
Image::Base, Image::Magick
Image::Base::GD, Image::Base::PNGwriter, Image::Base::Imager, Image::Base::Gtk2::Gdk::Pixbuf, Image::Base::Prima::Image, Image::Xbm, Image::Xpm, Image::Pbm
Prima::Image::Magick
http://user42.tuxfamily.org/image-base-magick/index.html
Image-Base-Magick is Copyright 2010, 2011, 2012, 2017, 2021 Kevin Ryde
Image-Base-Magick is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Image-Base-Magick is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Image-Base-Magick. If not, see <http://www.gnu.org/licenses/>.
To install Image::Base::Magick, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Image::Base::Magick
CPAN shell
perl -MCPAN -e shell install Image::Base::Magick
For more information on module installation, please visit the detailed CPAN module installation guide.