I just tried using the Aspose.Imaging library (using the latest v. 18.9.0.0) to convert an SVG graphic into a PNG and/or BMP, and found that a handful of supported SVG elements and attributes got lost during the conversions:
-
rgba() “fill” colors were always converting as black (i.e. the alpha channel didn’t work) even though svg supports the use of rgba colors (tried in both PATH and RECT elements).
-
As expected, the SYMBOL element (often used for icons in svg graphics) doesn’t get rendered in an svg, nor is it required to be under a DEFS element. But a conversion to a png or bmp improperly renders the SYMBOL and thus puts it in the wrong spot.
-
USE elements don’t render in the converted png/bmp unless the now-deprecated “xlink:href” attribute has been used. If the now-standard “href”-only attribute is used in the svg, the conversion of the USE completely fails.
-
TEXT elements never get converted when referred to by a USE element. That problem appears to be true whether the TEXT is part of a grouping element in the DEFS or a stand-alone element.
As long as a user has full control over the original SVG markup, they have a chance of finding work-arounds for these issues (e.g. use rgb colors plus the fill-opacity attribute in place of rgba colors), but otherwise these problems are pretty serious.
Thanks