繁体   English   中英

用Java扩展SVG

[英]Scaling an SVG in Java

我正在尝试缩放图像,修改它,然后输出到另一种图像格式。 到目前为止,我一直在使用apache蜡染库。 对于简单的转换,这很容易。 为了削减svg,这很容易。

但是,我似乎无法弄清楚如何缩放到svg创建的完整图像。 也就是说,我可以将感兴趣的区域指定为边界矩形,然后缩放在边界矩形上工作,但我不知道如何缩放svg的图像。

这是我到目前为止:

...
//set the output width and height  
transcoder.addTranscodingHint( PNGTranscoder.KEY_WIDTH, new Float( newSize.width ) );
transcoder.addTranscodingHint( PNGTranscoder.KEY_HEIGHT, new Float( newSize.height ) );

//set the aoi for scaling. Unsure what to do here.
transcoder.addTranscodingHint( PNGTranscoder.KEY_AOI, new Rectangle( 0, 0, 100, 100 ) );
...

如果未设置KEY_AOI转码提示,则将使用根<svg>元素上的viewBox=""属性来确定感兴趣的区域。 如果您要转码的文档没有viewBox=""属性,则将使用width=""height=""属性,因此AOI将为(0,0,宽度,高度)。

如果没有设置这些,并且您事先不知道文档的坐标系中图形的位置,那么您可以计算根<svg>元素的边界框并将其用作AOI。 您可以通过首先为文档“引导DOM” ,然后在文档元素上调用getBBox()来完成此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM