NAME

Gimp::PixelRgn - The PixelRgn family of functions.

SYNOPSIS

use Gimp;		# Gimp::PixelRgn is part of Gimp

DESCRIPTION

PixelRgns 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),