piwigo : batch de création d’arborescence

INTRO

Je suis un fervent utilisateur de la galerie d’image en ligne Piwigo (ex PhpWebgallery). C’est une web-app qui ne cesse d’évoluer et de se bonifier avec les mise à jour et les contributions.

Entre autre chose la mise en ligne des images peut être géré de multiples manières, toutes efficaces.
Mais (car il en fallait un n’est-ce-pas ?) je ne trouvé pas mon content dans le système de stockage (répertoire anonyme par date) via ces outils et seul l’envoie par ftp me convenait.

Toutefois ce système demande la prise en charge de la création de chaque dimensions, il y en a trois par image, et de l’arborescence pour les organiser.
Je vous envoie sur cette page pour plus d’informations : http://fr.piwigo.org/doc/doku.php?id=pwg23:apprendre:facile

Travaillant sous Window et avec l’excellent XNview j’ai pensé à créer un fichier batch (.bat) utilisant l’utilitaire NConvert du même auteur, parfait pour ce genre de travail.
En effet si la conversion en série de plusieurs fichiers est monnaie courante (Xnview le fait très bien), la création de l’arborescence n’est gérée par rien sinon des langages de scripts.
(http://www.xnview.fr/fr/nconvert.html)

 

TELECHARGEMENT

Téléchargement de la dernière version : [download id= »1″] La nouveauté est la gestion des formats atypiques comme les panoramas ou carrés,  ce en conservant des dimensions minimum spécifiques.

 

[La suite est quasi identique à la page dédié à cet outil sur le site de Piwigo : Créarbo_piwigo]

DESCRIPTION GENERALE

Dans un premier temps j’ai fais une rapide revue des applications existantes (trouvables sur le site plutôt) et comme je ne trouvais pas mon compte et que pLoader (logiciel de mise en ligne maison) plantait allègrement à l’époque n’écoutant que mon courage (et ma curiosité) j’ai voulue créer mon propre utilitaire.

Dans un deuxième temps, tout à fait satisfait du dit utilitaire mais travaillant de plus en souvent avec des formats d’images atypiques, panoramiques essentiellement, j’ai voulue ajouter une gestion spécifique. En effet je désirais avoir les panoramiques HD vraiment HD !

Un point important est la grande facilité à adapter les paramètres à son propre usage en éditant juste le fichier avec le notepad.

Mon but était d’atteindre une simplicité d’usage extrême.
De ce fait ce script remplie les fonctions suivantes :

  • – création de l’arborescence automatique.
    ——— .convertis
    |—— .thumbnail
    |—— .pwg_high
  • – ce dossier « convertis » se plaçant dans le même répertoire que
    . soit les fichiers sélectionnés
    . soit le répertoire sélectionné
    La différence de traitement se faisant automatiquement !
  • – traitement des fichiers et conversions vers les trois dimensions en une fois, ainsi que l’ajout de « TN- » pour les thumbnails.
  • – un seul fichier directement éditable d’où une grande facilité de personnalisation.
    Les différents paramètres (compression, formats, options de traitement) sont de plus regroupés au début du fichier.
  • – utilisation très simple : il suffit d’envoyer fichiers ou dossier vers crea_arbo_piwigo.bat et voilà ! Le .bat peut se trouver n’importe où et notamment dans le dossier sendTo de window.
  • – le script indique si tout se passe bien ou si il y a des erreurs et créé de plus un fichier contenu.txt récapitulatif.

 

PRÉCISION

Le choix de NConvert est dû non seulement à la grande rareté des utilitaires en ligne de commande de nos jours (!) mais surtout à son exceptionnel qualité de traitement, sensiblement meilleur qu’ImageMagick par exemple et à son extrême polyvalence.

J’ai conçus ce script en observant quels était mes besoins mais également les options « inutiles » (pour moi) des autres outils. Par exemple j’utilise systématiquement le jpeg comme format pour les images à afficher sur le Net donc pas de choix de ce coté là (modifiable par édition néanmoins). Il me semble que c’est extrêmement courant comme pratique ceci dit, surtout pour une galerie web.
De plus ça permet de simplifier sensiblement le script, donc d’augmenter ses performances.

Le format Haute Définition est fixé à 1280 X 851. Choix personnel mais qui offre un bon rapport de qualité tout en restant confortable d’utilisation.

Concernant les fichiers utilisables en entrée la variable « in » permet de les définir :
set in=*.jpg *.jpe *.gif *.bmp *.png *.tif *.tiff
Elle n’est utilisée que pour un traitement de dossier afin de trier les fichiers. On peut remplacer par « set in=*.* » pour tout prendre en compte.

OPT est la variable correspondant aux options de traitement par NConvert. Là encore j’ai gardé les plus qualitatives et/ou évidentes : garder le ratio de dimensions, « -opthuff » et « -rtype lanczos » pour le qualité du jpeg.

Particularité l’option « -32bits » qui permet de traiter les fichiers .png (et autres ?) avec une couche Alpha. Bien sûr le jpeg ne garde pas cette couche mais les png qui la comporte ne sont pas traités sans cela.

 

TRAITEMENT DES FORMATS ATYPIQUES (v2)

Cette partie est pratiquement le seul changement par rapport à la version 1. Même fonctionnement donc sauf pour ce qui est des dimensions des images HD pour les formats atypiques comme les panoramas, les carrés. En fait ayant un rapport largeur/hauteur plus grand ou plus petit que le 4/3 classique maintenant.

Pour ce faire la seule technique efficace que j’ai trouvé est d’aller calculer le rapport L/H exact, ce qui demande l’extraction de ces valeurs, puis d’imposer la « bonne » valeur lors du traitement de l’image HD.

1/ Trouver les valeurs H & L
Comme on travaille parfois avec des fichiers ne possédant aucun tags et que ni Windows ni DOS ne fournissent ces indications c’est grâce, encore, à NConvert que l’on peut obtenir ces informations.
Problème : bien que très complet cet utilitaire ne les fournis pas directement mais au travers d’une variable « info » assez complète par ailleurs.
Il m’a fallut batailler avec les commandes DOS mais voilà c’est heureusement faisable. Regardez le code, abondamment commenté, pour plus d’infos.

2/ Donner la « bonne » hauteur ou la « bonne » largeur
Comme je ne voulais encore une fois pas obtenir une « usine à gaz » j’ai cherché à aller à l’essentiel.
En gros il s’agit d’obtenir des images hautes définitions qui, quel que soit leur format soient toutes mis en valeur de la même façons tout en restant adaptées aux dimensions d’un écran moyen.
En pratique le traitement se résume à quatre possibilités : plus ou moins large que 1280 pixels, plus ou moins haut que 851 pixels.

 

CONCLUSION

Ce script est encore améliorable mais répond déjà pleinement à mes besoins donc j’espère aux vôtres.
J’envisage néanmoins des perfectionnements dès que je trouverais le temps mais en attendant je suis à votre écoute pour tout problème/ajout/modification.

N’hésitez pas à laisser vos commentaires ils seront les bienvenus.

 

——————COMPLEMENTS D’INFO———————

UTILISATION DU DOSSIER SENDTO

Le dossier sendTo permet de rendre accessible divers raccourcis vers des programmes, dossiers ou ce qu’on veut, de manière universel par le biais du menu contextuel (clic droit).
L’astuce est donc d’y coller notre fichier .bat ou un raccourci vers celui ci.

Avec XP, facile : le dossier sendTo se trouve dans dans le répertoire Windows. Pas de droit particulier.

Avec seven (et Vista peut être) :
Le répertoire se trouve ici :
C:\Users\ [nom d’utilisateur] \AppData\Roaming\Microsoft\Windows\SendTo
Il y a un raccourci bloqué dans [nom d’utilisateur] : inutile de s’énerver dessus ;).

De plus il faut prendre les droits complets sur le dossier SendTo, via ses options, pour pouvoir y copier un raccourci/fichier soi même.
Ouvrez le panneau de Propriétés, aller sur l’onglet Sécurité, cliquez sur le bouton Modifier.
Dans ce nouveau panneau cliquez sur Ajouter puis taper votre nom exact de connexion dans le troisième panneau (ou passez par Avancer puis Rechercher). Validez. Dans le deuxième panneau cliquez sur votre nom puis cocher « Contrôle total » dans la colonne « Autoriser ». Validez et validez encore. C’est tout bon enfin, plus qu’à y coller crea_arbo_piwigo.bat !

 

RÉPERTOIRE DE XNVIEW

De même avec seven il y a une particularité.
Xnview va se trouver (en attendant une version 64bits) dans le répertoire « C:\Program Files (x86)\XnView\ » au lieu de « C:\Program Files\XnView\ ».
N’oubliez pas d’adapter ce chemin dans le script si vous êtes encore sous XP par exemple. Il suffira d’enlever « rem » devant la ligne et le mettre devant l’autre.

Related posts

23 février 2012 |

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

SEO Powered by Platinum SEO from Techblissonline