在java中调整svg图像大小

在java中调整svg图像大小,java,svg,resize,Java,Svg,Resize,我正面临一个小问题,但很烦人。我有一个svg图像,比如“test.svg”。我使用一个特殊的Swing组件来显示它(如果您感兴趣,可以使用SVGSalamander提供的SVGPanel,但这并不重要)。因此,我的“test.svg”显示得非常完美,我还可以根据自己的意愿调整大小。现在,我的问题是,当我调整swing组件的大小时,我想修改“test.svg”的大小 我的第一个意图是修改元素的width和height属性,但它当然不能像预期的那样工作,因为对象的坐标会出错 例如,如果在SVG面板的

我正面临一个小问题,但很烦人。我有一个svg图像,比如“test.svg”。我使用一个特殊的Swing组件来显示它(如果您感兴趣,可以使用SVGSalamander提供的SVGPanel,但这并不重要)。因此,我的“test.svg”显示得非常完美,我还可以根据自己的意愿调整大小。现在,我的问题是,当我调整swing组件的大小时,我想修改“test.svg”的大小

我的第一个意图是修改
元素的width和height属性,但它当然不能像预期的那样工作,因为对象的坐标会出错

例如,如果在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属性,例如
viewBox=“0 0 20”
。现在,您可以在不影响内容的情况下更改宽度/高度。

元素上添加viewBox属性,例如
viewBox=“0 0 20”
。现在,您可以在不影响内容的情况下更改宽度/高度。

元素上添加viewBox属性,例如
viewBox=“0 0 20”
。现在,您可以在不影响内容的情况下更改宽度/高度。

元素上添加viewBox属性,例如
viewBox=“0 0 20”
。现在,您可以在不影响内容的情况下更改宽度/高度。

您需要获取所有对象并重新计算每个对象的宽度/高度/x/y。如果没有一个库来处理这个问题,你就必须下载一个XML解析器,然后从Scratch上完成它。你是认真的吗?但是我不知道会有多少种对象和属性!也许有人知道至少有一个小图书馆可以做这项工作?是的,我是认真的。是的,等待其他反馈,因为我不知道是否有用于此目的的SVG库。如果有,事情会容易得多!等等,我在google中随机点击了一些关于viewbox属性的内容。我想这可能是问题的关键。我不太清楚为什么要调整SVG的大小,因为它的“可缩放矢量图形”和尺寸都是在绘制对象时进行缩放的,因此我无法想象有人会编写SVG。您希望调整SVG的尺寸还有其他原因吗?您需要获取所有对象并重新计算每个对象的宽度/高度/x/y。如果没有一个库来处理这个问题,你就必须下载一个XML解析器,然后从Scratch上完成它。你是认真的吗?但是我不知道会有多少种对象和属性!也许有人知道至少有一个小图书馆可以做这项工作?是的,我是认真的。是的,等待其他反馈,因为我不知道是否有用于此目的的SVG库。如果有,事情会容易得多!等等,我在google中随机点击了一些关于viewbox属性的内容。我想这可能是问题的关键。我不太清楚为什么要调整SVG的大小,因为它的“可缩放矢量图形”和尺寸都是在绘制对象时进行缩放的,因此我无法想象有人会编写SVG。您希望调整SVG的尺寸还有其他原因吗?您需要获取所有对象并重新计算每个对象的宽度/高度/x/y。如果没有一个库来处理这个问题,你就必须下载一个XML解析器,然后从Scratch上完成它。你是认真的吗?但是我不知道会有多少种对象和属性!也许有人知道至少有一个小图书馆可以做这项工作?是的,我是认真的。是的,等待其他反馈,因为我不知道是否有用于此目的的SVG库。如果有,事情会容易得多!等等,我在google中随机点击了一些关于viewbox属性的内容。我想这可能是问题的关键。我不太清楚为什么要调整SVG的大小,因为它的“可缩放矢量图形”和尺寸都是在绘制对象时进行缩放的,因此我无法想象有人会编写SVG。您希望调整SVG的尺寸还有其他原因吗?您需要获取所有对象并重新计算每个对象的宽度/高度/x/y。如果没有一个库来处理这个问题,你就必须下载一个XML解析器,然后从Scratch上完成它。你是认真的吗?但是我不知道会有多少种对象和属性!也许有人知道至少有一个小图书馆可以做这项工作?是的,我是认真的。是的,等待其他反馈,因为我不知道是否有用于此目的的SVG库。如果有,事情会容易得多!等等,我在google中随机点击了一些关于viewbox属性的内容。我想这可能是问题的关键。我不太清楚为什么要调整SVG的大小,因为它的“可缩放矢量图形”和尺寸都是在绘制对象时进行缩放的,因此我无法想象有人会编写SVG。您希望调整SVG的尺寸还有其他原因吗?是的,没错。这就是我发现这个属性后想要达到的。是的,没错。这就是我发现这个属性后想要达到的。是的,没错。这就是我发现这个属性后想要达到的。是的,没错。这就是我在发现这个属性后试图实现的目标。