我面临一个小但烦人的问题。我有一个 svg 图像,比如“test.svg”。我用一个特殊的 Swing 组件(如果您感兴趣,可以使用 SVGSalamander 的 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>
非常感谢您的帮助!
最佳答案
将 viewBox 属性放在 <svg>
上元素例如viewBox="0 0 20 20"
。现在您可以更改宽度/高度而不影响内容。
关于java - 在java中调整svg图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26216739/