首页 > 解决方案 > Azure 中的 Magick.NET 将 SVG 转换为 PNG 会产生黑框

问题描述

使用Magick.NET-Q16-AnyCPU我正在使用这个最少的代码将 SVG 转换为 PNG:

var bytes = File.ReadAllBytes("test.svg");
var magickReadSettings = new MagickReadSettings { Format = MagickFormat.Svg };
using var image = new MagickImage(bytes, magickReadSettings) { Format = MagickFormat.Png };
image.Write("test.png");

在本地工作正常,PNG 看起来是正确的,有一个文本(预期):

PNG本地

但是当部署到 Azure 应用服务时,PNG 会出现黑框(实际):

在此处输入图像描述

SVG 文件如下所示(最小):

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"[]>
<svg width="100px" height="50px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xml="http://www.w3.org/XML/1998/namespace" version="1.1">
    <g transform="translate(10, 10)">
    <text transform="translate(50, 0)">foo</text>
  </g>
</svg>

这个怎么可能?

标签: azuresvgimagemagickmagick.net

解决方案


这是与应用服务上安装的字体相关的问题。在此处讨论的底部有对此问题和解决方案的讨论


推荐阅读