(attrWidth, attrHeight, attrViewBox string)
| 70 | } |
| 71 | |
| 72 | func (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 | |
| 102 | func (svg *svgParser) init(width, height float64, viewbox [4]float64) { |
| 103 | svg.width, svg.height = width*96.0/25.4, height*96.0/25.4 |
no test coverage detected