Simple 2D library that support SVG path parsing/generation/manipulation and rasterization.
- SVG path parsing and generation
- Anti-aliased rendering
- Path offsetting
- Linear and Radial gradients with
- Serde integration if
serdefeature is set (enabled by default)
Main types are:
Path- Represents the same concept as an SVG path, the easiest way to construct it is with
Path::builderor it can be parsed from SVG path with
str::parse. Path can be stroked with
Path::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. See
examples/simple.rsfor a simple example. It can also be (de)serialized see
data/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 with
Image::write_bmpor to PNG with
pngfeature is enabled.
- Utility functions and types used across the library
- 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
- 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
- Default flatness used during rasterization. Value of 0.05px gives good accuracy tradeoff.
- Epsilon value
- Square root of the epsilon value
- Mathematical pi constant
- 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
- Convert Linear RGB color component into a SRGB color component.
- Format floats in a compact way suitable for SVG path
- Iterator containing curve extremities
- Iterator containing curve roots
- Scalar type