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
GradLinear
andGradRadial
- Serde integration if
serde
feature 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::builder
or it can be parsed from SVG path withstr::parse
. Path can be stroked withPath::stroke
to 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.rs
for a simple example. It can also be (de)serialized seedata/firefox.scene
for 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_bmp
or to PNG withImage::write_png
ifpng
feature is enabled.
Modules
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 GradStop
in 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
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
LineCap
specifies the shape to be used at the end of open sub-paths when they are stroked.
See SVG specification for more details.
LineJoin
defines 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 Definitions
Iterator containing curve extremities
Iterator containing curve roots
Scalar type