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§
- Active
Edge Iter - Iterator over rasterized pixels, by active-edge rasterizer
- Active
Edge Rasterizer - Active-Edge rasterizer
- BBox
- Bounding box with sides directed along the axes
- Cubic
- Cubic bezier curve
- Curve
Flatten Iter - Iterator over line segments approximating curve segment
- Ellip
Arc - Elliptical Arc
- Grad
Linear - Linear Gradient
- Grad
Radial - Radial Gradient
- Grad
Stop - Specifies color at a particular parameter offset of the gradient
- Grad
Stops - List of all
GradStop
in the gradient - Image
Iter - Immutable iterator over pixels
- Image
MutIter - Iterator over mutable references to all the pixels of the image
- Image
MutRef - Mutable reference to an image or another mutable reference
- Image
Owned - Create an image that owns the data
- Image
Ref - Reference to an image or another reference
- Layer
- Image with top left corner at (x, y) coordinates
- LinColor
- Alpha premultiplied RGBA color in the linear color space (no gamma correction)
- Line
- Line segment curve
- Path
- Collection of the SubPath treated as a single unit. Represents the same concept as an SVG path
- Path
Builder - Path builder similar to Canvas/Cairo interface.
- Pixel
- Rasterized pixel
- Point
- Value representing a 2D point or vector.
- Quad
- Quadratic bezier curve
- RGBA
- sRGBA color packed as [u8; 4]
- RGBA
Deserializer - Scalar
Format - Scalar
Formatter - Scene
- Represents an image that has not been rendered yet, multiple scenes can be composed to construct more complex scene.
- Shape
- Shape defines size and layout of the data inside an image
- Signed
Difference Rasterizer - Signed difference based rasterizer
- Size
- Size of the rectangular area with integer width and height
- Stroke
Style - Style used to generate stroke
- SubPath
- Non-empty collections of segments where end of each segments coincides with the start of the next one.
- SvgPath
Parser - Path parser for SVG encoded path
- Transform
- 2D affine transformation
Enums§
- Align
- Alignment options
- Color
Error - Fill
Rule - The algorithm to use to determine the inside part of a shape, when filling it.
- Grad
Spread - Gradient spread logic for the parameter smaller than 0 and greater than 1
- Image
Write Format - LineCap
LineCap
specifies the shape to be used at the end of open sub-paths when they are stroked. See SVG specification for more details.- Line
Join LineJoin
defines the shape to be used at the corners of paths when they are stroked. See SVG specification for more details.- Segment
Segment
is an enum of eitherLine
,Quad
orCubic
- SvgParser
Error - Error while parsing path in the SVG format
- SvgPath
Cmd - Possible SVG path commands
- Units
Constants§
- DEFAULT_
FLATNESS - Default flatness used during rasterization. Value of 0.05px gives good accuracy tradeoff.
- EPSILON
- Epsilon value
- EPSILON_
SQRT - Square root of the epsilon value
- PI
- Mathematical pi constant
Statics§
Traits§
- Color
- Common interface to all color representations
- Curve
- Set of operations common to all bezier curves.
- Image
- Trait common to all image types
- Image
Mut - Mutable image interface
- Paint
- Common interface for anything that can be used to fill an area
- Rasterizer
- Basic rasterizer interface
Functions§
- linear_
to_ srgb - Convert Linear RGB color component into a SRGB color component.
- srgb_
to_ linear
Type Aliases§
- ArcPaint
- Curve
Extremities - Iterator containing curve extremities
- Curve
Roots - Iterator containing curve roots
- Scalar
- Scalar type