SVG文件仅在某些地方有效
我有一个非常简单的svg文件,一个书架,它是我从Inkscape中的公共域图像中提取的。 我的目的是在WinForms中使用SVG渲染器,从中生成可变宽度的位图 它在Inkscape中运行良好,但不希望在IE或Chrome、DevExpress Svg渲染器或公共域Svg查看器中显示 为了使XML在Inkscape之外工作,我应该在XML中做哪些更改SVG文件仅在某些地方有效,svg,Svg,我有一个非常简单的svg文件,一个书架,它是我从Inkscape中的公共域图像中提取的。 我的目的是在WinForms中使用SVG渲染器,从中生成可变宽度的位图 它在Inkscape中运行良好,但不希望在IE或Chrome、DevExpress Svg渲染器或公共域Svg查看器中显示 为了使XML在Inkscape之外工作,我应该在XML中做哪些更改 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg x
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
id="svg11134"
version="1.1"
viewBox="0 0 100 9.9999993"
height="10mm"
width="100mm">
<defs
id="defs11128">
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath304">
<path
d="M 4410,3710 H 90 v -180 h 4320 z"
id="path302" />
</clipPath>
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath320">
<path
d="M 360,3890 90,3710 h 4320 l -270,180 z"
id="path318" />
</clipPath>
<linearGradient
x1="0"
y1="0"
x2="1"
y2="0"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(-7.9e-6,180,180,7.9e-6,2250,3710)"
spreadMethod="pad"
id="linearGradient326">
<stop
style="stop-opacity:1;stop-color:#ebecea"
offset="0"
id="stop322" />
<stop
style="stop-opacity:1;stop-color:#d6d7d5"
offset="1"
id="stop324" />
</linearGradient>
</defs>
<g
transform="translate(13.396613,-100.26342)"
id="layer1">
<g
id="g9848"
transform="matrix(-0.62409419,0,0,0.93340311,-15.02437,93.369296)">
<g
transform="matrix(0.02909742,0,0,-0.02975968,4.8287909,123.15116)"
id="g9840">
<g
id="g9838"
>
<path
d="M 4410,3710 H 90 v -180 h 4320 v 180"
style="fill:#d6d7d5;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path9836" />
</g>
</g>
<g
transform="matrix(0.02909742,0,0,-0.02975968,4.8287909,123.15116)"
id="g9846">
<g
id="g9844"
>
<path
d="M 360,3890 90,3710 h 4320 l -270,180 H 360"
style="fill:url(#linearGradient326);fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path9842" />
</g>
</g>
</g>
</g>
</svg>
grafics位于显示区域外的viewBox限制之外 Inkscape倾向于产生大量积垢,这使得在可视化编辑器之外维护和更改SVG几乎不可能。以下是简化为基本要素的相同图像,包括一些更改: 我已经删除了SVG的宽度/高度值。在此处以实际活动值给出尺寸:mm在大多数情况下都没有帮助。你说你想制作大小可变的位图。这相当于覆盖这些值,因此您可以在源文件中禁用它们。 grafic元素已在viewBox中移动,所有变换都已解决。 grafics不会填充整个viewBox宽度。我已经把他们的比例扩大到100:10。 如果要更改高宽比,可以在元素上设置属性preserveAspectRatio=none,并在导出程序中设置任意输出维度。然后,grafics将非均匀缩放,并始终填充视口
明亮的非常感谢。