- CLASS HIERARCHY
- SEE ALSO
- HOME PAGE
Image::Base::PNGwriter -- draw PNG format images
use Image::Base::PNGwriter; my $image = Image::Base::PNGwriter->new (-width => 100, -height => 100); $image->line (0,0, 99,99, '#FF00FF'); $image->rectangle (10,10, 20,15, 'white'); $image->ellipse (30,30, 90,90, '#AAAA3333DDDD'); $image->save ('/some/filename.png');
Image::Base::PNGwriter is a subclass of
Image::Base to create or update PNG format image files using the
Image::PNGwriter module and PNGwriter library.
The native PNGwriter has more features, but this module is an easy way to point
Image::Base style code at a PNGwriter to get PNG from some
X,Y coordinates are the usual
Image::Base style 0,0 at the top-left corner. The underlying PNGwriter library is 1,1 at the bottom-left but
Colours can be
"#RGB" 1 to 4 digit hex "#RRGGBB" "#RRRGGGBBB" "#RRRRGGGGBBBB" "black" "white"
There's no colour name database in PNGwriter and no names here except "black" and "white".
See "FUNCTIONS" in Image::Base for behaviour common to all Image-Base classes.
$image = Image::Base::PNGwriter->new (key=>value,...)
Create and return an image object. A new image can be started with
$image = Image::Base::PNGwriter->new (-width => 200, -height => 100);
Or an existing file can be read,
$image = Image::Base::PNGwriter->new (-file => '/some/filename.png');
Image::PNGwriterobject can be given,
my $p = Image::PNGwriter->new(200,100, 0, '/tmp/foo.png'); $image = Image::Base::PNGwriter->new (-pngwriter => $p);
$image->ellipse ($x1,$y1, $x2,$y2, $colour)
$image->ellipse ($x1,$y1, $x2,$y2, $colour, $fill)
Draw an ellipse within the rectangle top-left corner
$filltrue means a filled ellipse.
In the current implementation circles with an odd diameter (meaning
$x2-$x1+1is an odd number and equal to
$y2-$y1+1) are drawn with PNGwriter and the rest go to
Image::Base. This is a bit inconsistent but uses the features of PNGwriter as far as possible and its drawing should be faster.
$image->diamond ($x1,$y1, $x2,$y2, $colour)
$image->diamond ($x1,$y1, $x2,$y2, $colour, $fill)
Draw a diamond shape within the rectangle top-left
$filltrue means a filled diamond.
In PNGwriter 0.5.3 a filled diamond might miss the top-most pixel for some sizes. Currently there's no attempt to do anything about that here. At small sizes the shape sometimes isn't very good either.
The following attributes can be
The file to load in a
new(), and the default filename for subsequent
Setting these changes the size of the image, but also clears it to all black. The image must be at least 1x1 pixels.
-zlib_compression(integer 0-9 or -1)
The amount of data compression to apply when saving. The value is Zlib style 0 for no compression up to 9 for maximum. -1 means Zlib's default level (which is usually 6).
Image::PNGwriterobject in use.
Filename and compression level can't be read out of a pngwriter object, which means that if you set
undefand there's no default filename for
load(). But a
save()uses the filename and compression in the object. Perhaps this will improve in the future.
Image-Base-PNGwriter is Copyright 2010, 2011, 2012 Kevin Ryde
Image-Base-PNGwriter 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-PNGwriter 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-PNGwriter. If not, see <http://www.gnu.org/licenses/>.