[英]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.