使用Aspose.svg转换svg为图片问题

使用Aspose.SVG.dll转换svg为png图片,转换代码如下所示

 using (var document = new SVGDocument(svgimage.FullName))
                    {
                        var pngSaveOptions = new ImageSaveOptions();
                        pngSaveOptions.Format = Aspose.Svg.Rendering.Image.ImageFormat.Png;
                        pngSaveOptions.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                        pngSaveOptions.PageSetup.AnyPage = new Aspose.Svg.Drawing.Page(new Aspose.Svg.Drawing.Size(MAXSIZE, MAXSIZE));
                        pngSaveOptions.PageSetup.Sizing = Aspose.Svg.Rendering.SizingType.FitContent;
                        // Convert SVG to PNG                                
                        Converter.ConvertSVG(document, pngSaveOptions, outpath+bmpfile);                                
                    }

针对附件的svg文件,转换后效果和试用浏览器查看的效果不一样,看了下有些元素解析不太对,效果异常。下面是附件问题附件.zip (65.1 KB)

@lingxiaqidu

我们已在内部问题跟踪系统中打开以下新票证,并将根据 Free Support Policies 中提到的条款提供修复。

问题 ID:SVGNET-270

如果您需要优先支持,以及直接联系我们的付费支持管理团队,您可以获取 Paid Support Services

@lingxiaqidu

我发现您所面临的问题(尤其是径向渐变问题)与 GDI+ 绘图引擎的限制有关。为了获得更准确的 SVG 渲染,我建议使用 Aspose.SVG.Drawing.SkiaSharp 扩展。这个基于 SkiaSharp 的引擎速度更快,通过 SVG 功能(如滤镜、渐变和蒙版)提供更高的准确性,并且与 Chromium 浏览器的渲染行为紧密结合。

使用它:

1.安装Aspose.SVG.Drawing.SkiaSharp包。
2.使用以下代码激活它:

using Aspose.Svg;
using Aspose.Svg.Drawing.SkiaSharp;

// Initialize SkiaSharp-based drawing engine
Aspose.Svg.Configuration.SetExtension(new SkiaModule());

初始化后,您可以继续执行常规 SVG 转换代码。

另外,我还附加了“SVGNET-270.png”文件来演示在本文档中使用此扩展的结果。
SVGNET-270.png (27.9 KB)