簡體   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