gd_filter.c

Summary
gd_filter.c
Functions
gdImageScatter
gdImageScatterColor
gdImageScatterEx
gdImagePixelate
gdImageNegateInvert src image.
gdImageGrayScaleConvert the image src to a grayscale image.
gdImageBrightnessSet the brightness level <level> for the image src.
gdImageContrast
gdImageColor
gdImageConvolution
gdImageSelectiveBlur
gdImageEdgeDetectQuick
gdImageGaussianBlurgdImageGaussianBlur performs a Gaussian blur of radius 1 on the image.
gdImageEmboss
gdImageMeanRemoval
gdImageSmooth
gdImageCopyGaussianBlurredReturn a copy of the source image src blurred according to the parameters using the Gaussian Blur algorithm.

Functions

gdImageScatter

int gdImageScatter(gdImagePtr im,
int sub,
int plus)

gdImageScatterColor

int gdImageScatterColor(gdImagePtr im,
int sub,
int plus,
int colors[],
unsigned int num_colors)

gdImageScatterEx

int gdImageScatterEx(gdImagePtr im,
gdScatterPtr scatter)

gdImagePixelate

int gdImagePixelate(gdImagePtr im,
int block_size,
const unsigned int mode)

gdImageNegate

int gdImageNegate(gdImagePtr src)

Invert src image.

gdImageGrayScale

int gdImageGrayScale(gdImagePtr src)

Convert the image src to a grayscale image.

gdImageBrightness

int gdImageBrightness(gdImagePtr src,
int brightness)

Set the brightness level <level> for the image src.

gdImageContrast

int gdImageContrast(gdImagePtr src,
double contrast)

gdImageColor

int gdImageColor(gdImagePtr src,
const int red,
const int green,
const int blue,
const int alpha)

gdImageConvolution

int gdImageConvolution(gdImagePtr src,
float filter[3][3],
float filter_div,
float offset)

gdImageSelectiveBlur

int gdImageSelectiveBlur(gdImagePtr src)

gdImageEdgeDetectQuick

int gdImageEdgeDetectQuick(gdImagePtr src)

gdImageGaussianBlur

int gdImageGaussianBlur(gdImagePtr im)

gdImageGaussianBlur performs a Gaussian blur of radius 1 on the image.  The image is modified in place.

NOTE: You will almost certain want to use gdImageCopyGaussianBlurred instead, as it allows you to change your kernel size and sigma value.  Future versions of this function may fall back to calling it instead of gdImageConvolution, causing subtle changes so be warned.

Parameters

imThe image to blur

Returns

GD_TRUE (1) on success, GD_FALSE (0) on failure.

gdImageEmboss

int gdImageEmboss(gdImagePtr im)

gdImageMeanRemoval

int gdImageMeanRemoval(gdImagePtr im)

gdImageSmooth

int gdImageSmooth(gdImagePtr im,
float weight)

gdImageCopyGaussianBlurred

Return a copy of the source image src blurred according to the parameters using the Gaussian Blur algorithm.

radius is a radius, not a diameter so a radius of 2 (for example) will blur across a region 5 pixels across (2 to the center, 1 for the center itself and another 2 to the other edge).

sigma represents the “fatness” of the curve (lower == fatter).  If sigma is less than or equal to 0, gdImageCopyGaussianBlurred ignores it and instead computes an “optimal” value.  Be warned that future versions of this function may compute sigma differently.

The resulting image is always truecolor.

More Details

A Gaussian Blur is generated by replacing each pixel’s color values with the average of the surrounding pixels’ colors.  This region is a circle whose radius is given by argument radius.  Thus, a larger radius will yield a blurrier image.

This average is not a simple mean of the values.  Instead, values are weighted using the Gaussian function (roughly a bell curve centered around the destination pixel) giving it much more influence on the result than its neighbours.  Thus, a fatter curve will give the center pixel more weight and make the image less blurry; lower sigma values will yield flatter curves.

Currently, gdImageCopyGaussianBlurred computes the default sigma as

(2/3)*radius

Note, however that we reserve the right to change this if we find a better ratio.  If you absolutely need the current sigma value, you should set it yourself.

Parameters

srcthe source image
radiusthe blur radius (not diameter--range is 2*radius + 1)
sigmathe sigma value or a value <= 0.0 to use the computed default

Returns

The new image or NULL if an error occurred.  The result is always truecolor.

Example

FILE *in;
gdImagePtr result, src;

in = fopen("foo.png", "rb");
src = gdImageCreateFromPng(in);

result = gdImageCopyGaussianBlurred(im, src->sx / 10, -1.0);
int gdImageScatter(gdImagePtr im,
int sub,
int plus)
int gdImageScatterColor(gdImagePtr im,
int sub,
int plus,
int colors[],
unsigned int num_colors)
int gdImageScatterEx(gdImagePtr im,
gdScatterPtr scatter)
int gdImagePixelate(gdImagePtr im,
int block_size,
const unsigned int mode)
int gdImageNegate(gdImagePtr src)
Invert src image.
int gdImageGrayScale(gdImagePtr src)
Convert the image src to a grayscale image.
int gdImageBrightness(gdImagePtr src,
int brightness)
Set the brightness level level for the image src.
int gdImageContrast(gdImagePtr src,
double contrast)
int gdImageColor(gdImagePtr src,
const int red,
const int green,
const int blue,
const int alpha)
int gdImageConvolution(gdImagePtr src,
float filter[3][3],
float filter_div,
float offset)
int gdImageSelectiveBlur(gdImagePtr src)
int gdImageEdgeDetectQuick(gdImagePtr src)
int gdImageGaussianBlur(gdImagePtr im)
gdImageGaussianBlur performs a Gaussian blur of radius 1 on the image.
int gdImageEmboss(gdImagePtr im)
int gdImageMeanRemoval(gdImagePtr im)
int gdImageSmooth(gdImagePtr im,
float weight)
Return a copy of the source image src blurred according to the parameters using the Gaussian Blur algorithm.
Close