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