Масштабирование SVG в Java

Я пытаюсь масштабировать изображение, изменить его и затем произвести к другому формату изображения. До сих пор я пользовался апачской библиотекой батика. Для простого преобразования это легко. Для отсечения 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 ) );
...

12
задан Stefan Kendall 12 February 2010 в 23:01
поделиться

1 ответ

Если вы не установите подсказку транскодирования KEY_AOI, тогда атрибут viewBox = "" в корневом элементе будет использоваться для определения интересующей области. Если в документе, который вы перекодируете, нет атрибута viewBox = "" , то атрибуты width = "" и height = "" будут используется, поэтому AOI будет (0, 0, ширина, высота).

И если ничего из этого не задано, и вы заранее не знаете, где в системе координат документа находится графика, то вы можете вычислить ограничивающую рамку корневого элемента и используйте это как AOI. Вы можете сделать это, сначала «загрузив DOM» для вашего документа, а затем вызвав getBBox () для элемента документа.

7
ответ дан 2 December 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: