SVG stands for Scalable Vector Graphic. It can be used to make graphics and animations like in HTML canvas.
The <feConvolveMatrix> SVG filter primitive changes pixels in the input image with neighboring pixels to produce a resulting image.
Syntax:
<feConvolveMatrix in="" order="" kernelMatrix="" divisor="" bias="" targetX="" targetY="" edgeMode="" kernelUnitLength="" preserveAlpha="" />
Attributes:
- in – It stores input for the given primitive.
- order – It tests the size of the matrix to be used by the filter element. By default, it is 3 X 3.
- kernelMatrix – It defines the list of numbers that form the kernel matrix.
- divisor – It defines the sum of values of the kernel matrix. By default, it is set to 1.
- bias – It sets the range of the filter. By default, it is set to 0.
- targetX – It shifts the convolution matrix horizontally. (Range – 0 <= targetX < orderX).
- targetY – It shifts the convolution matrix vertically. (Range – 0 <= targetY < orderY).
- kernelUnitLength – It tells the intended distance between successive columns and rows in the kernelMatrix. The intended distance is represented in current filter units. The default value is 1.
- preserveAlpha – It value is either true or false. It indicates whether the convolution will only apply to the alpha and color channels. The default value is false.
Example 1:
<!DOCTYPE html> < html >
< body >
< svg width = "100%" height = "220" >
< defs >
< filter id = "convolve" >
< feConvolveMatrix kernelMatrix =
"1 5 -1 -1 0 4 0 0 -1" />
</ filter >
</ defs >
< rect x = "40" y = "40" width = "100" height = "100" filter: url(#convolve) style=
"stroke: #000000;
fill: darkgreen;" />
< g fill = "#FFFFFF" stroke = "black" font-size = "10" font-family = "Verdana" >
< text x = "50" y = "90" filter = "url(#convolve)" >
GeeksForGeeks
</ text >
</ g >
</ svg >
</ body >
</ html >
|
Output:
Example 2:
<!DOCTYPE html> < html >
< title >SVG Filter</ title >
< body >
< svg width = "100%" height = "220" >
< defs >
< filter id = "convolve" >
< feConvolveMatrix kernelMatrix
= "-7 -10 -15 -10 10 -1 0 0 -1" />
</ filter >
</ defs >
< rect x = "1" y = "1" width = "198" height = "118" style="stroke: #000000;
fill: none;
filter: url(#convolve);" />
< circle cx = "100" cy = "60" r = "55" stroke = "black" stroke-width = "3" fill = "Lightgreen" filter: url(#convolve) />
< g fill = "#FFFFFF" stroke = "black" font-size = "10" font-family = "Verdana" >
< text x = "60" y = "62" filter = "url(#convolve)" >
GeeksForGeeks</ text >
</ g >
</ svg >
</ body >
</ html >
|
Output: