Fork me on GitHub

NGalerie, gérer vos photos numériques

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 :

  1. Le fait de ne pas avoir pu mettre pyexiv2 dans les dépendances.
  2. 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 !

blogroll

social