On me l'a réclamé, alors le voici : mon patch perso pour ajouter le support de plusieurs versions d'une image dans SPGM.
On peut le trouver dans mon répertoire home, il est licencé avec la même licence que SPGM. Au menu :
- Il est possible d'avoir plusieurs versions d'une même image:
- J'ai essayé de conserver l'idée de base de SPGM: aucun travail ne doit être fait par SPGM lui-même, donc chaque version doit préexister.
- Chaque fichier de version est du type : _nom_image, où nom est le nom de la version, et image le nom du fichier de l'image originale.
- La version en cours est sauvegardé dans la session, donc par défaut, chaque image suivante sera affichée dans la même version.
- Si le nom de la version est du type NNNxMMM (par exemple 800x600), c'est considéré comme étant une taille d'image, et un traitement spécial est fait: pour l'image suivante, si la version NNNxMMM, on tente aussi de trouver la version MMMxNNN.
- Plusieurs autres petites modifications qui ne se voient pas forcément:
- Tailles de polices en em
- ...
/!\ Attention: j'ai pas testé l'utilisation de DIR_VERSIONS, donc si vous l'utilisez, merci de me dire si ça marche ou pas. De même, l'utilisation des ombres ne marche pas bien lors de l'affichage d'une image en grand (l'ombre ne s'affiche pas à droite); je ne sais pas si ça vient de mes changements, ou si c'est comme ça de base déjà, donc merci de me le dire si vous le savez :-)
Dans le même répertoire se trouve également un script Perl qui se charge de la rotation (lossless) et du redimensionnement automatique des images. Il utilise perlmagick et exiftran pour faire son boulot, ainsi que Image::EXIF pour accélerer un peu (ne pas tourner l'image si elle est déjà dans la bonne orientation). Il faut aller configurer un peu si les valeurs par défaut ne conviennent pas, mais bon, ça devrait aller :-)
Il reste encore quelques choses à faire :
- stocker la version "préférée" dans un cookie
- s'il y a plus de 3 versions différentes, ça rend pas très joli dans l'affichage des thumbnails
- recoder spgm, car le code PHP est sale, et le code HTML produit aussi. Mais bon, comme on dit en anglais, "don't hold your breath".