gd_filter.c | |
Functions | |
gdImageScatter | |
gdImageScatterColor | |
gdImageScatterEx | |
gdImagePixelate | |
gdImageNegate | Invert src image. |
gdImageGrayScale | Convert the image src to a grayscale image. |
gdImageBrightness | Set the brightness level <level> for the image src. |
gdImageContrast | |
gdImageColor | |
gdImageConvolution | |
gdImageSelectiveBlur | |
gdImageEdgeDetectQuick | |
gdImageGaussianBlur | gdImageGaussianBlur performs a Gaussian blur of radius 1 on the image. |
gdImageEmboss | |
gdImageMeanRemoval | |
gdImageSmooth | |
gdImageCopyGaussianBlurred | Return a copy of the source image src blurred according to the parameters using the Gaussian Blur algorithm. |
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.
im | The image to blur |
GD_TRUE (1) on success, GD_FALSE (0) on failure.
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.
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.
src | the source image |
radius | the blur radius (not diameter--range is 2*radius + 1) |
sigma | the sigma value or a value <= 0.0 to use the computed default |
The new image or NULL if an error occurred. The result is always truecolor.
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 )
Invert src image.
int gdImageNegate( gdImagePtr src )
Convert the image src to a grayscale image.
int gdImageGrayScale( gdImagePtr src )
Set the brightness level level for the image src.
int gdImageBrightness( gdImagePtr src, int brightness )
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 )
gdImageGaussianBlur performs a Gaussian blur of radius 1 on the image.
int gdImageGaussianBlur( gdImagePtr im )
int gdImageEmboss( gdImagePtr im )
int gdImageMeanRemoval( gdImagePtr im )
int gdImageSmooth( gdImagePtr im, float weight )