Mise à l’échelle d’un fichier SVG en Java

J’essaie de redimensionner une image, de la modifier, puis de la générer dans un autre format d’image. Jusqu’à présent, j’ai utilisé la bibliothèque Apache Batik . Pour une conversion simple, c’est facile. Pour couper le svg, c’est facile.

Cependant, je n’arrive pas à comprendre comment redimensionner l’image complète créée par le svg. Autrement dit, je peux spécifier la zone d’intérêt comme un rectangle englobant, puis la mise à l’échelle fonctionne par dessus le rectangle englobant, mais je ne sais PAS comment redimensionner l’image du svg.

C’est ce que j’ai jusqu’à présent:

... //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 ) ); ... 

Si vous ne définissez pas l’indicateur de transcodage KEY_AOI, l’ viewBox="" de l’élément racine sera utilisé pour déterminer la zone d’intérêt. Si le document que vous êtes en viewBox="" transcoder n’a pas d’ viewBox="" atsortingbuts width="" et height="" seront utilisés, ainsi le champ AOI sera (0, 0, largeur, hauteur).

Et si aucun de ceux-ci n’est défini et que vous ne savez pas à l’avance où se trouvent les graphiques dans le système de coordonnées du document, vous pouvez alors calculer le cadre de sélection de l’élément racine et l’utiliser comme AOI. Vous pouvez le faire en getBBox() par “démarrer le DOM” pour votre document, puis en appelant getBBox() sur l’élément document.