[−][src]Crate svgfilters
svgfilters
provides low-level SVG filters
implementation.
svgfilters
doesn't implement the whole filters workflow, just operations on raster images.
Filter region calculation, image colors (un)premultiplication, input validation,
filter primitives order, transformations, etc. should be implemented by the caller.
Implemented filters
- feColorMatrix
- feComponentTransfer
- feComposite Only the arithmetic operator is supported since other one are pretty common and should be implemented by the 2D library itself.
- feConvolveMatrix
- feDiffuseLighting
- feDisplacementMap
- feGaussianBlur Box blur and IIR blur variants are available.
- feMorphology
- feSpecularLighting
- feTurbulence
Unimplemented filters
- feFlood, because it's just a simple fill.
- feImage, because it can be implemented only by a caller.
- feTile, because it's basically a fill with pattern.
- feMerge, because it's just a layer compositing and a 2D library will be faster.
- feOffset, because it's just a layer compositing with offset.
Performance
The library isn't well optimized yet, but it's mostly allocation free. Some methods will allocate necessary, temporary buffers which will be reflected in the documentation. But majority of methods will work on provided buffers.
Structs
ConvolveMatrix | A convolve matrix used by |
ImageRef | An image reference. |
ImageRefMut | A mutable |
NormalizedValue | A normalized value. |
Enums
ColorChannel | A color channel. |
ColorMatrix | A color matrix used by |
EdgeMode | An edges processing mode used by |
LightSource | A light source. |
MorphologyOperator | A morphology operation. |
TransferFunction | A transfer function used |
Functions
arithmetic_composite | Performs an arithmetic composition. |
box_blur | Applies a box blur. |
color_matrix | Applies a color matrix filter. |
component_transfer | Applies component transfer functions for each |
convolve_matrix | Applies a convolve matrix. |
demultiply_alpha | Demultiplies provided pixels alpha. |
diffuse_lighting | Renders a diffuse lighting. |
displacement_map | Applies a displacement map. |
from_linear_rgb | Converts input pixel from LinearRGB into sRGB. |
iir_blur | Applies an IIR blur. |
into_linear_rgb | Converts input pixel from sRGB into LinearRGB. |
morphology | Applies a morphology filter. |
multiply_alpha | Multiplies provided pixels alpha. |
specular_lighting | Renders a specular lighting. |
turbulence | Applies a turbulence filter. |
Type Definitions
RGB8 | 8-bit RGB |
RGBA8 | 8-bit RGBA, alpha is last. 0 = transparent, 255 = opaque. |