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.


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

réagir à cet article