J'ai du mal à faire quelque chose qui semble assez basique:
Dans Inkscape, comment puis-je redimensionner le document et son contenu (c'est-à-dire les dessins) en même temps?
Un peu de contexte: je veux redimensionner un assez grand nombre de documents SVG de The Noun Project (ce sont généralement des documents 100x100px) sans avoir à redimensionner explicitement les dessins réels.
NB: S'il existe une solution en ligne de commande, je peux aussi travailler avec!
Réponses:
Vous n'avez pas mentionné le système d'exploitation que vous utilisez. J'utilise Ubuntu et j'ai pu utiliser librsvg2 avec succès.
Si vous avez accès à Ubuntu, voici ce que vous pouvez faire. Tout d'abord, installez librsvg2:
Ensuite,
cd
dans le répertoire contenant vos SVG (assurez-vous qu'il ne contient que des SVG!) Et utilisez une commande comme celle-ci:Cela va créer un nouveau lot de SVG avec des dimensions 200px par 200px, et enregistré en tant que "nom-de-fichier-original.new.svg"
Le calcul des dimensions est quelque peu déroutant. Pour convertir SVG en SVG, vous devez faire un peu de calcul. Les options "hauteur" et "largeur" dans rsvg-convert utilisent pt, pas px, dans de tels cas, utilisez donc 80 si vous voulez 100px, 120 si vous voulez 150px et ainsi de suite.
Vous pouvez également utiliser rsvg-convert pour générer des fichiers PNG. Il est bien meilleur pour pixelliser le fichier que ImageMagick, du moins d'après mon expérience. Notez que vous devez passer
-f
àpng
, vous devez modifier le modèle d'enregistrement de sortie de's/svg$/new.svg/'
à's/svg$/png/'
, et vous entrez la largeur et la hauteur souhaitées comme valeurs de pixels.la source
rsvg-convert
comme tel:rsvg-convert noun_project_1576.svg -w 320 -h 160 -f svg -o noun_project_1576-skewed.svg
qui prendra un fichier source nommé "noun_project_1576" et l'inclinera à 400px par 200px et le renommera "noun_project_1576-skewed".librsvg
le bug du texte en flux sera corrigé ...Il n'existe actuellement aucun moyen natif de le faire dans Inkscape. La seule façon consiste à redimensionner le contenu et le document séparément.
la source
Bien qu'il existe plusieurs façons de le faire - comme indiqué ici - une façon qui peut très bien fonctionner est d'utiliser a
viewBox
. Vous modifiez simplement le contenu de la balise SVG comme ceci:Ce
viewBox
qu'il fait, c'est qu'il définit un système de coordonnées internes pour le document. Vous pouvez ensuite facilement mettre à l'échelle le document en modifiant simplement les attributswidth
etheight
si nécessaire.Notez cependant qu'il y a quelques inconvénients. D'une part, il n'y a que certains contextes dans lesquels cela fonctionne, en particulier si vous incluez directement le document SVG dans votre page de balisage. L'utilisation d'une
<img>
balise avec cela peut ou non produire des résultats inattendus. Vous devrez effectuer certaines de vos propres recherches pour déterminer la meilleure façon de procéder.la source