![]() |
![]() |
![]() |
GIMP Library Reference Manual | ![]() |
---|---|---|---|---|
enum GimpPixelFetcherEdgeMode; GimpPixelFetcher; GimpPixelFetcher* gimp_pixel_fetcher_new (GimpDrawable *drawable, gboolean shadow); void gimp_pixel_fetcher_set_edge_mode (GimpPixelFetcher *pf, GimpPixelFetcherEdgeMode mode); void gimp_pixel_fetcher_set_bg_color (GimpPixelFetcher *pf, const GimpRGB *color); void gimp_pixel_fetcher_get_pixel (GimpPixelFetcher *pf, gint x, gint y, guchar *pixel); void gimp_pixel_fetcher_put_pixel (GimpPixelFetcher *pf, gint x, gint y, const guchar *pixel); void gimp_pixel_fetcher_destroy (GimpPixelFetcher *pf);
These functions provide neighbourhood-based algorithms which get dramatically slower on region boundaries, to the point where a special treatment for neighbourhoods which are completely inside a tile is called for. It hides the special treatment of tile borders, making plug-in code more readable and shorter.
typedef enum { GIMP_PIXEL_FETCHER_EDGE_NONE, GIMP_PIXEL_FETCHER_EDGE_WRAP, GIMP_PIXEL_FETCHER_EDGE_SMEAR, GIMP_PIXEL_FETCHER_EDGE_BLACK, GIMP_PIXEL_FETCHER_EDGE_BACKGROUND } GimpPixelFetcherEdgeMode;
GimpPixelFetcher* gimp_pixel_fetcher_new (GimpDrawable *drawable, gboolean shadow);
Initialize a pixel region from the drawable.
drawable : |
the GimpDrawable the new region will be attached to. |
shadow : |
a gboolean indicating whether the region is attached to
the shadow tiles or the real drawable tiles.
|
Returns : | a pointer to a GimpPixelRgn structure (or NULL). |
void gimp_pixel_fetcher_set_edge_mode (GimpPixelFetcher *pf, GimpPixelFetcherEdgeMode mode);
Change the edage mode of a previously initialized pixel region.
pf : |
a pointer to a previously initialized GimpPixelFetcher. |
mode : |
the new edge mode from GimpPixelFetcherEdgeMode. |
void gimp_pixel_fetcher_set_bg_color (GimpPixelFetcher *pf, const GimpRGB *color);
Change the background color of a previously initialized pixel region.
pf : |
a pointer to a previously initialized GimpPixelFetcher. |
color : |
the color to be used as bg color. |
void gimp_pixel_fetcher_get_pixel (GimpPixelFetcher *pf, gint x, gint y, guchar *pixel);
Get a pixel from the pixel region.
pf : |
a pointer to a previously initialized GimpPixelFetcher. |
x : |
the x coordinate of the pixel to get. |
y : |
the y coordinate of the pixel to get. |
pixel : |
the memory location where to return the pixel. |
void gimp_pixel_fetcher_put_pixel (GimpPixelFetcher *pf, gint x, gint y, const guchar *pixel);
Set a pixel in the pixel region.
pf : |
a pointer to a previously initialized GimpPixelFetcher. |
x : |
the x coordinate of the pixel to set. |
y : |
the y coordinate of the pixel to set. |
pixel : |
the pixel to set. |
void gimp_pixel_fetcher_destroy (GimpPixelFetcher *pf);
Close a previously initializd pixel region.
pf : |
a pointer to a previously initialized GimpPixelFetcher. |