在java中调整svg图像的大小

时间:2014-10-06 12:58:29

标签: java svg resize

我面临着一个小而恼人的问题。我有一个svg图像,说“test.svg”。我用一个特殊的Swing组件显示它(SVGSalanel的SVGPanel如果你有兴趣,但没关系)。所以,我的“test.svg”完美显示,我也可以按照自己的意愿调整大小。现在,我的问题是当我调整swing组件的大小时,我想修改“test.svg”的大小

我的第一个意图是修改<svg>元素的宽度和高度属性,但当然它不能按预期工作,因为对象的坐标会出错。

例如,如果我在svg面板中间有一条水平线:

    //Should be sth like that
    <svg ... height='20' width='20'><line x1="0" x2="20" y1="10" y2="10" /></svg>

如果我尝试通过仅改变大小来调整大小,我会得到:

    //using my "naive" resize method
    <svg ... height='10' width='10'><line x1="0" x2="20" y1="10" y2="10" /></svg>

并且该线不再位于面板中间。相反,它现在位于底部。

所有这些都可能非常明显。对不起,如果是这样的话。

因此,简而言之,如何获得预期结果

    <svg ... height='10' width='10'><line x1="0" x2="10" y1="5" y2="5" /></svg>

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

<svg>元素上放置一个viewBox属性,例如viewBox="0 0 20 20"。现在,您可以更改宽度/高度,而不会影响内容。