Inkscape

Script inkscape d’importation d’images

L’idée étant d’ouvrir XX images en 1 clic dans un document inkscape. Très utile quand vous avez moulte images avec lesquelles vous devez faire un montage.

Imaginons que vous avec 1OO images avec lesquelles vous devez réaliser un montage. Plutôt que de les importer une par une, le script ci-joint vous permetra de les importer toutes, en une seul manip. Evidemment pour comprendre ce qui va suivre il faut déjà connaitre Inkscape.

Il faut avoir le langage "Python" sur votre ordi ce qui est generalement le cas sur Linux.

Organiser vous bien créer votre dossier de travail appelé le "travail" ou comme ça vous chante. A l’interieur créer un autre dossier "img" dans lequel vous COPIEZ toutes vos images que vous allez ouvrir en un seul coup de script.

Attention il faut que vos images soient correctement nommé … genre pas d’espace. Au besoin voici 1 scripts qui peut servir, Il remplace tous les espaces par un tiret bas.

rename ’s/ /_/g’ img/*

A appliquer sur le dossier a traiter. Au cas ou vous auriez du mal à vous déplacer dans votre ordinateur via la console, un simple clic droit sur le dossier vous proposera d’ouvrir un terminal ici … selon les systemes d’exploitation linux.

Avant de rentrer dans le script qui nous interresse vous pouriez avoir besoin de recadrer vos images par lots. Le logiciel Image Magick peut vous aider avec cette commande :

for i in * ; do convert -geometry 1250 "$i" "th_$i" ; done

1250 étant la taille souhaité. D’autres logiciel le font aussi sans passer par la ligne de commande.

On va pouvoir se lancer pour le script en question ! Pour ça recopier toutes ces lignes dans document avec le logiciel kate ou autres … Nommer votre fichier de la sorte : mkimg.py ou telecharger ce dossier Zip


Zip - 1 ko

<?py

#!/usr/bin/python

import sys
import re
from PIL import ImageFont

print ("""<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:cc="http://creativecommons.org/ns#"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
  xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
  width="744.09448819"
  height="1052.3622047"
  id="svg2"
  sodipodi:version="0.32"
  inkscape:version="0.46"
  sodipodi:docname="test.svg"
  inkscape:output_extension="org.inkscape.output.svg.inkscape">
 <defs
    id="defs4">
   <inkscape:perspective
      sodipodi:type="inkscape:persp3d"
      inkscape:vp_x="0 : 526.18109 : 1"
      inkscape:vp_y="0 : 1000 : 0"
      inkscape:vp_z="744.09448 : 526.18109 : 1"
      inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
      id="perspective10" />
   <inkscape:perspective
      id="perspective2464"
      inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
      inkscape:vp_z="744.09448 : 526.18109 : 1"
      inkscape:vp_y="0 : 1000 : 0"
      inkscape:vp_x="0 : 526.18109 : 1"
      sodipodi:type="inkscape:persp3d" />
 </defs>
 <sodipodi:namedview
    id="base"
    pagecolor="#ffffff"
    bordercolor="#666666"
    borderopacity="1.0"
    gridtolerance="10000"
    guidetolerance="10"
    objecttolerance="10"
    inkscape:pageopacity="0.0"
    inkscape:pageshadow="2"
    inkscape:zoom="0.35"
    inkscape:cx="375"
    inkscape:cy="520"
    inkscape:document-units="px"
    inkscape:current-layer="layer1"
    showgrid="false"
    inkscape:window-width="1024"
    inkscape:window-height="736"
    inkscape:window-x="1024"
    inkscape:window-y="1" />
 <metadata
    id="metadata7">
   <rdf:RDF>
     <cc:Work
        rdf:about="">
       <dc:format>image/svg+xml</dc:format>
       <dc:type
          rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
     </cc:Work>
   </rdf:RDF>
 </metadata>
 <g
    inkscape:label="images"
    inkscape:groupmode="layer"
    id="layer1">
   
""" )
lines = sys.stdin.readlines()
i=1
for line in lines:
   print  '<image'
   print  ' id="%s"' % (line.strip())
   print  ' xlink:href="%s" />' % (line.strip())
print ("""
</g>
</svg>
""")


?>

Mettre le fichier dans le dossier qu’on a appelé "travail" plus haut. Une fois fais, il vous reste à taper ceci dans un terminal, sur le dossier travail.

ls img/* | python mkimg.py >mondocument.svg

Ouvrez le document ainsi generé et c’est parti pour une composition du diable. Bon faut savoir tous de même que les images vont s’ouvrir les une sur les autres et ainsi disposé c’est chiant c’est lourd. Il faut jouer avec la fonction d’alignement en clicant sur cette petite icone qui ouvre un panneau selectionné toutes vos images (Ctrl A) puis cliqué encore sur cette icone situé dans le panneau de droite

Ca y est le tous est manipulable facilement avec un ordinateur pas trop vieux et selon le nombre et la taille de vos images.

Voilà a vous de jouer ! ou de devenir fou avec un gavage d’images.


Sorcière & nono , le 18/04/2009 (dernière modif : 18/04/2009)

FORUM : Ils ont donné leur avis

  • Script inkscape d’importation d’images 27 mai 2009 16:28, par imppao

    Est-il possible de faire la même chose sous mac OSX et windows ? Ce qui serait bien, ce serait un script qui ouvre les images une par une et qui les enregistrent au format PNG (traitement par lot). En tous les cas merci pour le script linux

  • Script inkscape d’importation d’images 5 juin 2009 10:21, par sorcière

    Hum … pour les autres systeme d’exploitation tous doit etre une question de langage, donc s’assurer que pyton est installé sur la machine. Pour la question du traitement par lot c’est plus de image magick que aurais besoin.

  • Quelle est la licence du script 11 octobre 2010 22:09

    Bonjour

    Inkscape est libre, mais le script est sans licence. Serait-il possible d’en attribuer une pour savoir si on peut le modifier ? merci pour se script intéressant. C’est étrange de le générer à partir de PIL alors qu’Inkscape a une API qui contient déjà ce qu’il faut, mais ça marche impec.

    • Quelle est la licence du script 22 octobre 2010 14:51, par Arnaud

      Comme précisé sur la page "mentions légales" du site : « Tout le contenu original créé pour ce site est généralement sous licence GNU/GPL. Dans le cas contraire, la licence est généralement indiquée sur la page. »

      La licence de ce script est donc la GPL !

    • Quelle est la licence du script 22 octobre 2010 16:52

      Cela devrait aussi t’interressé http://mutins.net/spip.php?article375 un peu inspirer de celui ci avec l’option d’ouvrir des images dans des calques