Expand description
Simple 2D library that support SVG path parsing/generation/manipulation and rasterization.
§Main features:
- SVG path parsing and generation
- Anti-aliased rendering
- Path offsetting
Path::stroke - Linear and Radial gradients with
GradLinearandGradRadial - Serde integration if
serdefeature is set (enabled by default)
§Overview
Main types are:
Path- Represents the same concept as an SVG path, the easiest way to construct it is withPath::builderor it can be parsed from SVG path withstr::parse. Path can be stroked withPath::stroketo generated new path that represents an outline.Scene- Represents an image that has not been rendered yet, multiple scenes can be composed to construct more complex scene. This is probably the simplest way to render something useful. Seeexamples/simple.rsfor a simple example. It can also be (de)serialized seedata/firefox.scenefor an example.Paint- Color/Gradient that can be used to fill a path.Image- 2D matrix that can hold and image and used as a target for rendering. Image can also be written into a file withImage::write_bmpor to PNG withImage::write_pngifpngfeature is enabled.
Re-exports§
pub use color::SVG_COLORS;pub use color::SVG_COLORS;
Modules§
- Utility functions and types used across the library
Structs§
- Iterator over rasterized pixels, by active-edge rasterizer
- Active-Edge rasterizer
- Bounding box with sides directed along the axes
- Cubic bezier curve
- Iterator over line segments approximating curve segment
- Elliptical Arc
- Linear Gradient
- Radial Gradient
- Specifies color at a particular parameter offset of the gradient
- List of all
GradStopin the gradient - Immutable iterator over pixels
- Iterator over mutable references to all the pixels of the image
- Mutable reference to an image or another mutable reference
- Create an image that owns the data
- Reference to an image or another reference
- Image with top left corner at (x, y) coordinates
- Alpha premultiplied RGBA color in the linear color space (no gamma correction)
- Line segment curve
- Collection of the SubPath treated as a single unit. Represents the same concept as an SVG path
- Path builder similar to Canvas/Cairo interface.
- Rasterized pixel
- Value representing a 2D point or vector.
- Quadratic bezier curve
- sRGBA color packed as [u8; 4]
- Represents an image that has not been rendered yet, multiple scenes can be composed to construct more complex scene.
- Shape defines size and layout of the data inside an image
- Signed difference based rasterizer
- Size of the rectangular area with integer width and height
- Style used to generate stroke
- Non-empty collections of segments where end of each segments coincides with the start of the next one.
- Path parser for SVG encoded path
- 2D affine transformation
Enums§
- Alignment options
- The algorithm to use to determine the inside part of a shape, when filling it.
- Gradient spread logic for the parameter smaller than 0 and greater than 1
LineCapspecifies the shape to be used at the end of open sub-paths when they are stroked. See SVG specification for more details.LineJoindefines the shape to be used at the corners of paths when they are stroked. See SVG specification for more details.- Error while parsing path in the SVG format
- Possible SVG path commands
Constants§
- Default flatness used during rasterization. Value of 0.05px gives good accuracy tradeoff.
- Epsilon value
- Square root of the epsilon value
- Mathematical pi constant
Traits§
- Common interface to all color representations
- Set of operations common to all bezier curves.
- Trait common to all image types
- Mutable image interface
- Common interface for anything that can be used to fill an area
- Basic rasterizer interface
Functions§
- Convert Linear RGB color component into a SRGB color component.
- Format floats in a compact way suitable for SVG path
Type Aliases§
- Iterator containing curve extremities
- Iterator containing curve roots
- Scalar type