Documentation ¶
Index ¶
- Variables
- func ParseSVGColor(colorStr string) (color.Color, error)
- func ParseSVGColorNum(colorStr string) (r, g, b uint8, err error)
- type ErrorMode
- type IconCursor
- type PathCursor
- type PathStyle
- type SvgIcon
- func (s *SvgIcon) AsImage() image.Image
- func (s *SvgIcon) AsImageResize(width, height float64) image.Image
- func (s *SvgIcon) Draw(r *rasterx.Dasher, opacity float64)
- func (s *SvgIcon) RotateOnPivot(angle float64, x, y float64)
- func (s *SvgIcon) SaveAsJpeg(filePath string) error
- func (s *SvgIcon) SaveAsJpegResized(filePath string, w, h float64) error
- func (s *SvgIcon) SaveAsPng(filePath string) error
- func (s *SvgIcon) SaveAsPngResized(filePath string, w, h float64) error
- func (s *SvgIcon) ScaleOnPivot(scaleX, scaleY, x, y float64)
- func (s *SvgIcon) SetTarget(x, y, w, h float64)
- type SvgPath
- func (svgp *SvgPath) Draw(r *rasterx.Dasher, opacity float64)
- func (svgp *SvgPath) DrawTransformed(r *rasterx.Dasher, opacity float64, t rasterx.Matrix2D)
- func (svgp *SvgPath) GetFillColor() color.Color
- func (svgp *SvgPath) GetLineColor() color.Color
- func (svgp *SvgPath) SetFillColor(clr color.Color)
- func (svgp *SvgPath) SetLineColor(clr color.Color)
Constants ¶
This section is empty.
Variables ¶
var DefaultStyle = PathStyle{1.0, 1.0, 2.0, 0.0, 4.0, nil, true, color.NRGBA{0x00, 0x00, 0x00, 0xff}, nil, nil, nil, rasterx.ButtCap, rasterx.Bevel, rasterx.MatrixAdder{M: rasterx.Identity}}
DefaultStyle sets the default PathStyle to fill black, winding rule, full opacity, no stroke, ButtCap line end and Bevel line connect.
Functions ¶
func ParseSVGColor ¶
ParseSVGColor parses an SVG color string in all forms including all SVG1.1 names, obtained from the image.colornames package
func ParseSVGColorNum ¶
ParseSVGColorNum reads the SFG color string e.g. #FBD9BD
Types ¶
type ErrorMode ¶
type ErrorMode uint8
ErrorMode is the for setting how the parser reacts to unparsed elements
type IconCursor ¶
type IconCursor struct { PathCursor StyleStack []PathStyle // contains filtered or unexported fields }
IconCursor is used while parsing SVG files.
func (*IconCursor) PushStyle ¶
func (c *IconCursor) PushStyle(attrs []xml.Attr) error
PushStyle parses the style element, and push it on the style stack. Only color and opacity are supported for fill. Note that this parses both the contents of a style attribute plus direct fill and opacity attributes.
func (*IconCursor) ReadGradAttr ¶
func (c *IconCursor) ReadGradAttr(attr xml.Attr) (err error)
ReadGradAttr reads an SVG gradient attribute
func (*IconCursor) ReadGradURL ¶
func (c *IconCursor) ReadGradURL(v string, defaultColor interface{}) (grad rasterx.Gradient, ok bool)
ReadGradURL reads an SVG format gradient url Since the context of the gradient can affect the colors the current fill or line color is passed in and used in the case of a nil stopClor value
type PathCursor ¶
type PathCursor struct { rasterx.Path ErrorMode ErrorMode // contains filtered or unexported fields }
PathCursor is used to parse SVG format path strings into a rasterx Path
func (*PathCursor) AddArcFromA ¶
func (c *PathCursor) AddArcFromA(points []float64)
AddArcFromA adds a path of an arc element to the cursor path to the PathCursor
func (*PathCursor) CompilePath ¶
func (c *PathCursor) CompilePath(svgPath string) error
CompilePath translates the svgPath description string into a rasterx path. All valid SVG path elements are interpreted to rasterx equivalents. The resulting path element is stored in the PathCursor.
func (*PathCursor) EllipseAt ¶
func (c *PathCursor) EllipseAt(cx, cy, rx, ry float64)
EllipseAt adds a path of an elipse centered at cx, cy of radius rx and ry to the PathCursor
func (*PathCursor) GetPoints ¶
func (c *PathCursor) GetPoints(dataPoints string) error
GetPoints reads a set of floating point values from the SVG format number string, and add them to the cursor's points slice.
func (*PathCursor) ReadFloat ¶
func (c *PathCursor) ReadFloat(numStr string) error
ReadFloat reads a floating point value and adds it to the cursor's points slice.
type PathStyle ¶
type PathStyle struct {
FillOpacity, LineOpacity float64
LineWidth, DashOffset, MiterLimit float64
Dash []float64
UseNonZeroWinding bool
LineGap rasterx.GapFunc
LeadLineCap rasterx.CapFunc // This is used if different than LineCap
LineCap rasterx.CapFunc
LineJoin rasterx.JoinMode
// contains filtered or unexported fields
}
PathStyle holds the state of the SVG style.
type SvgIcon ¶
type SvgIcon struct { ViewBox struct{ X, Y, W, H float64 } Titles []string // Title elements collect here Descriptions []string // Description elements collect here Grads map[string]*rasterx.Gradient Defs map[string][]definition SVGPaths []SvgPath Transform rasterx.Matrix2D // contains filtered or unexported fields }
SvgIcon holds data from parsed SVGs.
func ReadIcon ¶
ReadIcon reads the Icon from the named file. This only supports a sub-set of SVG, but is enough to draw many icons. If errMode is provided, the first value determines if the icon ignores, errors out, or logs a warning if it does not handle an element found in the icon file. Ignore warnings is the default if no ErrorMode value is provided.
func ReadIconStream ¶
ReadIconStream reads the Icon from the given io.Reader. This only supports a sub-set of SVG, but is enough to draw many icons. If errMode is provided, the first value determines if the icon ignores, errors out, or logs a warning if it does not handle an element found in the icon file. Ignore warnings is the default if no ErrorMode value is provided.
func ReadReplacingCurrentColor ¶
func ReadReplacingCurrentColor(stream io.Reader, currentColor string, errMode ...ErrorMode) (icon *SvgIcon, err error)
ReadReplacingCurrentColor replaces currentColor value with specified value and loads SvgIcon as ReadIconStream do. currentColor value should be valid hex, rgb or named color value.
func (*SvgIcon) AsImage ¶
**NEW** Returns the SvgIcon as an image set to its original width and height.
func (*SvgIcon) AsImageResize ¶
**NEW** Returns the SvgIcon as an image set to a given width and height. However, if width is set to -1 then the original width of the SvgIcon is used. If the height is set to -1 then the SvgIcon maintains its aspect ratio even when an arbitrary width is set
func (*SvgIcon) Draw ¶
Draw the compiled SVG icon into the GraphicContext. All elements should be contained by the Bounds rectangle of the SvgIcon.
func (*SvgIcon) RotateOnPivot ¶
**NEW** Rotate the SvgIcon with the supplied transformation matrix2D
func (*SvgIcon) SaveAsJpeg ¶
**NEW** The SvgIcon is saved as a JPEG file.
func (*SvgIcon) SaveAsJpegResized ¶
**NEW** The SvgIcon is saved as a JPEG file set to a given width and height. However, if width is set to -1 then the original width of the SvgIcon is used. If the height is set to -1 then the SvgIcon maintains its aspect ratio even when an arbitrary width is set
func (*SvgIcon) SaveAsPngResized ¶
**NEW** The SvgIcon is saved as a PNG file set to a given width and height. However, if width is set to -1 then the original width of the SvgIcon is used. If the height is set to -1 then the SvgIcon maintains its aspect ratio even when an arbitrary width is set
func (*SvgIcon) ScaleOnPivot ¶
**NEW** Scale the SvgIcon with the supplied transformation matrix2D
type SvgPath ¶
SvgPath binds a style to a path.
func (*SvgPath) DrawTransformed ¶
DrawTransformed draws the compiled SvgPath into the Dasher while applying transform t.
func (*SvgPath) GetFillColor ¶
GetFillColor returns the fill color of the SvgPath if one is defined and otherwise returns colornames.Black
func (*SvgPath) GetLineColor ¶
GetLineColor returns the stroke color of the SvgPath if one is defined and otherwise returns colornames.Black
func (*SvgPath) SetFillColor ¶
SetFillColor sets the fill color of the SvgPath
func (*SvgPath) SetLineColor ¶
SetLineColor sets the line color of the SvgPath