NAME
Gimp::PixelRgn - The PixelRgn family of functions.
SYNOPSIS
use Gimp; # Gimp::PixelRgn is part of Gimp
DESCRIPTION
PixelRgn
s are rectangular parts of a drawable. You can access single pixels, rows, columns and rectangles within these regions. Don't expect me to explain everything now, I don't understand the mechanism too well myself..
How do I create a pixel region? First, you have to grab a GDrawable structure. You can get one from any drawable, by calling the get
function:
my $gdrawable = $drawable->get;
in a sense, <$gdrawable> contains all tiles. Changes you make to them might not be reflected in the image until you destroy this variable. (Thats the reason I used "my" int he above example. Once $gdrawable gets out of scope, the drawable in the gimp automatically gets updated).
Now you can create as many PixelRgn structures as you want from the GDrawable
, by one of the following methods:
my $region = new PixelRgn($gdrawable,0,0,50,30,1,0); # with "new" my $region = $gdrawable->pixel_rgn(0,0,50,30,1,0); # or from a drawable
its purely a style choice..
The following functions return packed pixel data (see Gimp::PDL for an easier way):
$packed_data = $region->get_pixel(45,60); # return the pixel at (45|60) $packed_data = $region->get_row(45,60,10); # return ten horizontal pixels $packed_data = $region->get_col(45,60,10); # same but vertically $packed_data = $region->get_rect(45,60,10,12); # a 10x12 rectangle
To modify pixels, the dirty bit of the region must be set (I believe, but I don't see the reason what the dirty bit in a region is for so I might be wrong), and you can write pixel data to the region by one of the following functions, all pendants to the get-functions:
$region->set_pixel($packed_data,45,60); # set pixel at (45|60) $region->set_row($packed_data,45,60); # set a row $region->set_col($packed_data,45,60); # set a column $region->set_rect($packed_data,45,60,10); # a 10 pixel wide rectangle
Please note that (different to the C functions), the last parameter (width or height) is missing, it can be calculcated from the perl string (if you use piddles, set_rect can calculcate both dimensions from the piddle).
BUGS See Gimp::Tile. This and Gimp::Tile should be merged.
AUTHOR
Marc Lehmann <pcg@goof.com>
SEE ALSO
perl(1), Gimp(1),