Présentation de NGalerie
Historique
Ça faisait un moment que j'avais un petit script qui me permettait de générer les photos et miniature pour une galerie web réalisé en PHP3 il y a maintenant 5 ou 6 ans.
Ce petit script, avec le temps, a commencé à grossir et hier, je me suis lancé avec argparse pour ne plus avoir à l'éditer à la main pour l'utiliser.
Ce script fait trois choses :
- Redimensionner les images JPG d'un répertoire à une certaine taille
- Retourner les images physiquement en fonction de l'information EXIF
- Renommer les images en fonction du DateTime EXIF du fichier
Avec NGalerie, on peut maintenant faire l'une ou l'autre de ces actions. Il est même possible de faire deux versions redimensionnées du fichier.
Dépendances
Il faut installer pyexiv2 et PIL pour pouvoir l'utiliser.
L'un pour extraire les données EXIF, le second pour les exploiter
Usage
Renommer les fichiers avec la date de prise de vue
ngalerie --rename /media/CAMERA/DCIM/100NIKON/ ~/Images/ACC
Redimensionner et retourner les images
ngalerie --resize 1280 --rotate /media/CAMERA/DCIM/100NIKON/ ~/Images/ACC
Redimensionner et créer des miniatures pour web-galerie
ngalerie --resize 600 --max-dir agrandie --thumb-size 200 --thumb-dir miniature -tr --artist "Remy HUBSCHER" --copyright "Afpy Computer Camp 2011" /media/CAMERA/DCIM/100NIKON/ ~/Images/20110806
L' upload sur Pypi
Ça faisait un moment que je voulais me confronter avec PyPi pour comprendre un peu plus intimement son fonctionnement.
J'ai donc fait un package en convertissant mon fichier unique NGalerie.py en ngalerie/__init__.py, j'ai créé le fichier setup.py, MANIFEST.in et LICENCE
Il faut ensuite s'enregistrer sur PyPi et configurer le fichier .pypirc
[pypirc]
servers = pypi
[server-login]
username:your_cool_username
password:your_cool_password
D'ailleurs si quelqu'un sait comment ne pas avoir à saisir le mot de passe en clair dans ce fichier, ça pourrait m'intéresser.
Ensuite, on enregistrer la nouvelle release :
python setup.py register
On génére le .tar.gz pour pip :
python setup.py sdist upload
On génére le .egg pour easy_install :
python setup.py bdist_egg upload
Et voilà, votre code est maintenant disponible sur PyPi. Bravo !
On peut tester l'installation dans un virtualenv :
$ virtualenv --distribute vtest
$ source vtest/bin/activate
(vtest)$ pip install ngalerie
Successfully installed ngalerie PIL
(vtest)$ ngalerie --version
1.0.1
En conclusion
Deux petites frustration :
- Le fait de ne pas avoir pu mettre pyexiv2 dans les dépendances.
- Le fait d'avoir du mettre en dur le mot de passe dans le .pypirc
Si vous avez des solutions, je suis preneur.
En bonus, redimentionnez vos vidéos
À l'heure de la vidéo, il faut savoir aussi redimensionner les vidéos.
Voici un petit script qui permet de convertir les AVI, MOV et MP4 des APN en un joli H.264 / ACC via FFMPEG :
#!/bin/bash
for file in $*
do
ext=${file##*.}
ffmpeg -y -i "$file" -acodec aac -strict experimental -ar 44100 -ab 96k -coder ac -subq 5 -vcodec libx264 -s 640x480 -vpre normal -b 700k -g 250 -r 20 ${file/$ext/mp4}
rm "$file"
done
Comments !