NAME
Graphics::Potrace::Raster - raster representation for Graphics::Potrace
VERSION
version 0.76
SYNOPSIS
my
$bitmap
= Graphics::Potrace::Raster->new();
$bitmap
->load(
Ascii
=>
filename
=>
'/path/to/ascii.txt'
);
my
$vectorial
=
$bitmap
->trace();
DESCRIPTION
INTERFACE
bitmap
my
$raw_bitmap
=
$raster
->bitmap();
Returns the raw bitmap as an array of integers whose bits have been properly arranged for being used by Potrace (the library).
clear
$raster
->clear();
Clear the raster to all blank pixels.
create_loader
my
$loader
= Graphics::Potrace::Raster->create_loader(
$type
,
@params
);
Creates a loader for the specific $type
, i.e. a class that is searched under Graphics::Potrace::Raster::$type
(see e.g. Graphics::Potrace::Raster::Ascii). See Graphics::Potrace::Raster::Importer for further information about what you can do with these importers.
dwim_load
my
$bitmap
= Graphics::Potrace->dwim_load(
$source
);
Tries to do the Right Thing (TM), which currently boils down to analysing the provided parameters like this:
if
$source
is a simple scalar, has no newlines and can be mapped to an existing file, it is considered an Ascii file (see Graphics::Potrace::Raster::Ascii) and loaded accordingly;if
$source
is a simple scalar containing newlines or that cannot be mapped onto an existing file, it is considered as straight data and loaded accordingly (again assuming an Ascii format);if
$source
is a glob it is used to load data as if they are in Ascii representation format;if
$source
is an array it is considered a sequence of parameters to be provided to/load
.
dy
my
$dy
=
$raster
->dy();
$raster
->dy(
$dy
);
Get (or set) the dy
parameter, needed by Potrace library.
get
my
$value
=
$raster
->get(
$x
,
$y
);
Get the value associated to the specified pixel.
height
my
$height
=
$raster
->height();
$raster
->height(
$new_height
);
Accessor for raster's height. It performs trimming or enlargement where necessary.
load
$bitmap
->load(
$type
,
$flavour
,
$info
);
Load the bitmap. $type
is the name of a helper loader type that is searched as class Graphics::Potrace::Raster::$type
(see e.g. Graphics::Potrace::Raster::Ascii). $flavour
is an indication of what info
contains, see Graphics::Potrace::Raster::Importer for details about the possible $flavour
/$info
possible associations.
mirror_vertical
$raster
->mirror_vertical();
Flip bitmap vertically.
new
my
$raster
= Graphics::Potrace::Raster->new();
Constructor.
packed
my
$hash
=
$raster
->packed();
Returns a packed representation of the raster, consisting of an anonymous hash containing fields useful for calling the proper tracing function from Potrace's library.
packed_bitmap
my
$sequence
=
$raster
->packed_bitmap();
Returns a packed representation of the bitmap section of the whole raster, i.e. the binary representation used by Potrace's library.
real_bitmap
my
$sequence
=
$raster
->real_bitmap();
Accessor to the low-level representation of the bitmap.
reset
$raster
->
reset
();
Reset the bitmap to an empty one.
reverse
$raster
->
reverse
();
Reverse the bitmap: all blanks will be turned to full and vice-versa.
set
$raster
->set(
$x
,
$y
);
$raster
->set(
$x
,
$y
, 1);
# equivalent to the above, but explicit
$raster
->set(
$x
,
$y
, 0);
# equivalent to $raster->unset(...)
Set the value of the specific pixel to the provided value (or to 1 if no value is provided).
trace
my
$vectorial
=
$raster
->trace(
%options
);
my
$vectorial
=
$raster
->trace(
$options
);
Get a vectorial representation of the raster image. This works in terms of "raster2vectorial" in Graphics::Potrace, see there for additional info.
trim
$raster
->trim();
$raster
->trim(
$width
);
$raster
->trim(
$width
,
$height
);
$raster
->trim(
undef
,
$height
);
Trim the bitmap according to the available data. A trimming width or height can be provided, otherwise the one already known for the raster will be used.
unset
$raster
->unset(
$x
,
$y
);
Set the specific pixel to empty. Equivalent to calling:
$raster
->set(
$x
,
$y
, 0);
width
my
$width
=
$raster
->width();
$raster
->width(
$width
);
Get/set the width of the raster. If explicitly set, it will be kept and trimming will happen, otherwise the raster will grow as necessary.
AUTHOR
Flavio Poletti <polettix@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2011-2015 by Flavio Poletti polettix@cpan.org.
This module is free software. You can redistribute it and/or modify it under the terms of the Artistic License 2.0.
This program 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.