MCPcopy
hub / github.com/tdewolff/canvas / parseViewBox

Method parseViewBox

svg.go:72–100  ·  view source on GitHub ↗
(attrWidth, attrHeight, attrViewBox string)

Source from the content-addressed store, hash-verified

70}
71
72func (svg *svgParser) parseViewBox(attrWidth, attrHeight, attrViewBox string) (float64, float64, [4]float64) {
73 var err error
74 var viewbox [4]float64
75 var width, height float64
76 if attrViewBox != "" {
77 vals := strings.Split(attrViewBox, " ")
78 if len(vals) != 4 {
79 svg.err = parse.NewErrorLexer(svg.z, "bad viewBox")
80 } else {
81 for i := 0; i < 4; i++ {
82 viewbox[i], err = strconv.ParseFloat(vals[i], 64)
83 if err != nil && svg.err == nil {
84 svg.err = parse.NewErrorLexer(svg.z, "bad viewBox: %w", err)
85 }
86 }
87 }
88 }
89 if attrWidth != "" && !strings.HasSuffix(attrWidth, "%") {
90 width = svg.parseDimension(attrWidth, 1.0)
91 } else {
92 width = viewbox[2] * 25.4 / 96.0
93 }
94 if attrHeight != "" && !strings.HasSuffix(attrHeight, "%") {
95 height = svg.parseDimension(attrHeight, 1.0)
96 } else {
97 height = viewbox[3] * 25.4 / 96.0
98 }
99 return width, height, viewbox
100}
101
102func (svg *svgParser) init(width, height float64, viewbox [4]float64) {
103 svg.width, svg.height = width*96.0/25.4, height*96.0/25.4

Callers 2

parseDefsMethod · 0.95
ParseSVGFunction · 0.95

Calls 2

parseDimensionMethod · 0.95
SplitMethod · 0.80

Tested by

no test coverage detected