Я пытаюсь масштабировать изображение, изменить его и затем произвести к другому формату изображения. До сих пор я пользовался апачской библиотекой батика. Для простого преобразования это легко. Для отсечения 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, тогда атрибут viewBox = ""
в корневом элементе
будет использоваться для определения интересующей области. Если в документе, который вы перекодируете, нет атрибута viewBox = ""
, то атрибуты width = ""
и height = ""
будут используется, поэтому AOI будет (0, 0, ширина, высота).
И если ничего из этого не задано, и вы заранее не знаете, где в системе координат документа находится графика, то вы можете вычислить ограничивающую рамку корневого элемента
и используйте это как AOI. Вы можете сделать это, сначала «загрузив DOM» для вашего документа, а затем вызвав getBBox ()
для элемента документа.