我正在开发一个图形应用程序,我只能使用Arc,Line,cubic和Quadraticbézier。我有一个SVG文件,这有点长,但我只是采取了前几个路径元素来构建以查看输出。我写了一个小应用程序,它将低位字母替换为高位字母,并生成一个简单的SVG文件,其中包含上层原因并且只包含四个SVG命令。我创建了两个原始for的路径和第二个带有修改版本的路径来确认我的输出。一切似乎工作正常,不包括低字母'm'。结果不正确。我不确定。任何帮助都应该非常感谢。我犯了什么错误?要查看转换后的版本,您必须取消注释发送路径
答案 0 :(得分:0)
你的SVG有几个问题。
您的路径包含11个子路径。每个子路径形成一个非常薄的水平矩形。例如,查看第一个子路径:
M 21.52,184.48,H 91.11,v-.07,H21.54,l 0,.07 Z
这是一个宽91px,高0.07像素的矩形。一个7/100像素高的矩形最多会非常微弱。它在Firefox中可见,但Chrome似乎因某种原因完全剔除它。
您的fill
无效。
fill="New_Gradient_35"
应该是:
fill="url(#New_Gradient_35)"
您的路径定义无效。在路径命令信之前不应该有逗号。
M21.52,184.48,H91.11,v-.07,H21.54,l0,.07Z,
应该是
M21.52,184.48H91.11v-.07H21.54l0,.07Z
Chrome有点宽容。它将允许在坐标值之后使用逗号,但不允许在路径命令之后使用逗号。所以它不介意:
M21.52,184.48,H91.11,v-.07,H21.54,l0,.07Z
但它不喜欢Z
和M
之间的逗号:
M21.52,184.48,H91.11,v-.07,H21.54,l0,.07Z,
M ...etc...
Firefox不接受逗号。
您指定了stroke
颜色,但stroke-width
为"0"
,因此不会绘制您的描边。但也许这是故意的。
如果您解决了这些问题,您将获得更成功的结果。我不确定这是不是你期待的。它对我来说看起来不像是“m”字样。
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 498.9 498.9" width="100%" height="100%">
<linearGradient id="New_Gradient_35" x1="369.44" y1="1293.18" x2="137.44" y2="718.97" gradientTransform="translate(15.85 -609.22)" gradientUnits="userSpaceOnUse">
<stop offset="0.07"/>
<stop offset="0.93" stop-color="#454d51"/>
</linearGradient>
<title>Test One</title>
<g id="Case">
<path fill="url(#New_Gradient_35)" stroke-width="0" stroke="red" d="M21.52,184.48H91.11v-.07H21.54l0,.07Z
M469,147.4q1.62,0,3.21,.12l-406.4,0c.67,-.05,1.35,-.09,2,-.12l401.16,0Z
m8.55,.76,.22,0H60.82l.56,-.1h6l-5.47,.06Z
m1,.2,.7,.15,-419.89,0,.4,-.09,418.79,0Z
m2.21,.5,.31,.08H185.41v-.07Z
m1.88,.5,.37,.11H55.54l.23,-.07,426.9,0Z
m.74,.22,.16,0,-428.69,0,.43,-.13,428.11,0Z
m.85,.27,.47,.15H227.91l-63.75,0v0l58.44,-.08Z
m.8,.27,.23,.08,-432.07,0,.35,-.12,431.49,0Z
m.55,.19,.33,.12,-433.37,0,.39,-.14Z
m.83,.31,.2,.08H51.93l.2,-.08Z" />
</g>
</svg>