BINS album photo

Attention, cette page n'est à jour par rapport à la version anglaise.

# BINS

La page de référence est http://bins.sautret.org/.

Si vous désirez recevoir un mail annonçant les nouvelles versions, allez sur la page Freshmeat de BINS et cliquez sur Subscribe to new releases.

## Introduction

Le but de BINS est de créer des albums photos HTML statiques. Voici quelques unes de fonctionnalités de BINS :

- un album peut contenir d'autres albums (des sous albums) : l'album peut avoir une structure d'arbre ;
- génération d'une image timbre-poste et d'images à différentes échelles pour chaque image originale ;
- l'album généré peut être entièrement personnalisé en utilisant des modèles HTML et via des paramètres de configuration qui permettent de modifier : les couleurs, la taille et le nombre des timbres-poste, le nombre et la taille de chaque image à l'échelle (en pixel ou en pourcentage de l'image originale pour la taille), les champs à afficher, etc. Ces paramètres peuvent être changés globalement, par utilisateur, par album, sous-album ou même par image (par exemple, vous pouvez changer les couleurs d'un sous-album ou de la page d'une image particulière). ;
- plusieurs champs de description (date, lieu, etc.) peuvent être associés avec l'image. Ces descriptions peuvent être auformat texte ou HTML. Il est possible de personnaliser ou d'ajouter des champs. Ces données sont sauvegardées dans des fichiers XML propres à chaque image ;
- support du format Exif est des appareils photos numériques :
  - BINS peut utiliser la structure de données EXIF que l'on trouve dans certaines images (notamment dans celles générées par les appareils photos numériques) pour remplir automatiquement certains champs (date et heure ou modèle de l'appareil, par exemple) ;
  - BINS utilise le tag EXIF Orientation (qui normalement utilisé quand vous faites une rotation de photo sur votre appareil numérique) pour effectuer une rotation de automatique de l'image vers l'orientation correcte.
  - pour chaque image, une page donne toutes les informations disponibles sur ses caractéristiques et sur les paramètres de l'appareil photo numérique lors de la prise de vue ;
  - des informations supplémentaires sont fournies pour les appareils photos numériques Canon ;
  - une fenêtre d'aide explique la signification de certaines informations ;
  - toutes les informations en provenance du fichier Exif sont sauvegardées dans les fichiers de description XML, évitant ainsi qu'ils disparaissent lors de modification de l'image ;
- internationalisation (génération d'album dans différents langages) via gettext. Les langues actuellement supportées sont : anglais, français, allemand et polonais ;
- l'encodage du jeu de caractères des fichiers HTML générés est paramétrable, avec support par défaut de l'UTF-8 (Unicode). Création du fichier `.htaccess` d'Apache pour l'envoi de l'encodage du jeu de caractères correct dans l'en-tête HTTP ;
- utilisation de fichiers XML pour sauvegarder les descriptions utilisateur des images et des albums/sous-albums ainsi que les données Exif provenant des images ;
- les noms de fichiers et de répertoires contenant des espaces et autres caractères spéciaux (sauf /) sont gérés et des URL valides sont créés ;
- BINS produit du code HTML 4 valide.

BINS (BINS Is Not SWIGS) est une version modifiée de SWIGS (Structured Web Image Gallery System). J'ai fais ces modifications parce que j'en avais besoin. J'ai essayé de contacter l'auteur de SWIGS, mais je n'ai eu aucune réponse, c'est pourquoi j'ai décidé de publier ma version modifiée, au cas où elle intéresse quelqu'un.

Voir le fichier ChangeLog (en anglais) pour les différences entre BINS et SWIGS ainsi que les nouveautés de chaque version.

## Exemple

Vous pouvez voir un exemple d'un album généré par BINS sur http://album.sautret.org/. Il s'agit de mon album personnel avec l'I18N française.

## Téléchargement

La dernière version de BINS est la 1.1.10.

BINS est maintenant dans Sid (version unstable de Debian). Vous pouvez trouver le paquetage sur la page Debian de BINS.

Un tarball contenant l'ensemble des bibliothèques pour faire fonctionner BINS sur une Mandrake est disponible. Vous aurez quand même besoin d'un des tarballs disponibles ci-dessous.

Attention, le format des fichiers de description des images et des albums a changé dans la version 1.1.0. Lisez le fichier README pour savoir comment migrer vos anciens fichiers de description.

format gzip | format bzip2
bins-1.1.10.tar.gz | bins-1.1.10.tar.bz2
bins-1.1.9.tar.gz | bins-1.1.9.tar.bz2
bins-1.1.8.tar.gz | bins-1.1.8.tar.bz2
bins-1.1.7.tar.gz | bins-1.1.7.tar.bz2
bins-1.1.6.tar.gz | bins-1.1.6.tar.bz2
bins-1.1.5.tar.gz | bins-1.1.5.tar.bz2
bins-1.1.4.tar.gz | bins-1.1.4.tar.bz2
bins-1.1.3.tar.gz | bins-1.1.3.tar.bz2
bins-1.1.2.tar.gz | bins-1.1.2.tar.bz2
bins-1.1.1.tar.gz | bins-1.1.1.tar.bz2
bins-1.1.0.tar.gz | bins-1.1.0.tar.bz2
bins-1.0.4.tar.gz | bins-1.0.4.tar.bz2
bins-1.0.3.tar.gz | bins-1.0.3.tar.bz2
bins-1.0.2.tar.gz | bins-1.0.2.tar.bz2
bins-1.0.1.tar.gz | bins-1.0.1.tar.bz2
bins-1.0.0.tar.gz | bins-1.0.0.tar.bz2

## Installation

Procédure rapide :

- vérifiez que vous avez les logiciels et bibliothèques nécessaires
- détarez l'archive
- lancer le script `install.sh` (en tant que root si vous pouvez)
- exécutez `bins -h` pour obtenir de l'aide, et lisez la section utilisation de ce document

### dépendances

Vous avez besoin de Perl pour utiliser BINS, ainsi que des bibliothèques Perl suivantes (les noms de paquetage Debian et Mandrake sont mentionnés quand ils sont connus).

Ce tarball regroupe l'ensemble de ces bibliothèques au format rpm pour Mandrake ou tar.gz quand aucun rpm n'est disponible (voir ci dessous pour l'installation de bibliothèque Perl à partir d'un tarball).

Bibliothèque Perl | Paquetage Debian | Paquetage Mandrake 8.1 & 8.2
POSIX | perl-base | perl-base-5.601-7mdk
IO::File | perl-base | perl-base-5.601-7mdk
Getopt::Long | perl-base | perl-base-5.601-7mdk
File::Basename | perl-modules | perl-base-5.601-7mdk
Storable | libstorable-perl |
IO:String | libio-string-perl
Image::Size | libimage-size-perl | perl-Image-Size-2.903-5mdk
Image::Info | libimage-info-perl | perl-Image-Info-1.07-1mdk
Image::Magick (avec la collection d'outils ImageMagick) | perlmagick | perl-Magick-5.4.2.3-3mdk
HTML::Entities | libhtml-parser-perl | perl-HTML-Parser-3.25-3mdk
URI:Escape | liburi-perl | perl-URI-1.18-1mdk
XML::Parser::PerlSAX | libxml-perl | perl-libxml-perl-0.07-5mdk
XML::Grove | libxml-grove-perl | perl-XML-Grove-0.46alpha-2mdk
XML::Handler::YAWriter | libxml-handler-yawriter-perl |
Text::Iconv | libtext-iconv-perl |
Locale::gettext (optionnel si vous ne désirez pas avoir d'album dans une autre langue que l'anglais.) | liblocale-gettext-perl | perl-gettext-1.0-10mdk

Référez-vous à cette page pour savoir comment installer ces bibliothèques. Vous pouvez trouver l'interpéteur perl et toutes ces bibliothèques Perl sur CPAN.

BINS utilise la collection d'outils ImageMagick, qui est probablement déjà utilisée si vous utilisez une des distributions GNU/Linux communes. Pour vous en assurer, vérifier que vous avez les programmes `convert` (utilisé pour changer la taille des images) et `mogrify` (utilisé pour faire les rotations d'images).

BINS peut également utiliser `jpegtran` pour effectuer les rotations des JPEG. S'il ne le trouve pas, il utilisera `mogrify` (d'ImageMagick) à la place. Le programme `jpegtran` peut effectuer des transformations sans perte et il est plus rapide que `mogrify`. Il peut être trouvé dans le paquetage Debian `libjpeg-progs` ou dans le tarball `jpegsrc` accessible sur ce site FTP.

### Installation automatique de BINS

Une fois toutes les dépendances remplies, il faut extraire l'archive dans un répertoire de votre choix.

Vous pouvez installer BINS globalement ou pour un utilisateur. Attention, cette procédure va écraser les anciens programmes, fichiers de configuration et templates HTML. Faîtes une sauvegarde si vous les avez modifiés.

pour installer BINS globalement, lancer le scipt `install.sh` en tant que root. Cela installera les programmes dans `/usr/local/bin`, les fichiers d'internationalisation dans `/usr/local/share/locale` et les fichiers de configuration dans `/etc/bins`. Si vous voulez changer la configuration pour un seul utilisateur, vous pouvez toujours copier le contenu de `/etc/bins` dans `~/.bins` et ensuite éditer les fichiers dans `~/.bins`.

Pour installer BINS pour un seul utilisateur, lancer le script `install.sh` avec cet utilisateur. Cela installera les programmes dans `~/bin` les fichiers de configuration dans `~/.bins`. Notez que les fichiers d'internationalisation (utilisés pour créer des album dans une langue autre que l'anglais) ne seront PAS copiés, car ils doivent être installés dans `/usr/local/share/locale`.

### Installation manuelle de BINS

Si vous ne faites pas confiance au script `install.sh`, vous pouvez effectuer l'installation manuellement.

Copiez les fichiers `bins` et `bins_edit` quelque part dans votre PATH (`/usr/local/bin` est approprié ou `~/bin` si vous n'êtes pas root). Ensuite copiez le contenu du répertoire template dans `/etc/bins` ou `~/.bins` :

`
$ cp bins bins_edit ~/bin
$ mkdir ~/.bins
$ cp templates/* ~/.bins`

Si vous voulez utiliser l'I18N (traduction de l'album):

`
$ mkdir -p /usr/local/share/locale/fr/LC_MESSAGES/
$ cd intl
$ cp fr.mo /usr/local/share/locale/fr/LC_MESSAGES/bins.mo`

l'exemple donné est pour les traduction en français.

Notez que seul l'album est traduit, les messages fournis sur la ligne de commande sont en anglais

## Utilisation

Mettez toutes vos images dans un répertoire, disons `~/image`. Vos images peuvent être rangées dans des sous répertoires de ce répertoire. Ensuite, créez un répertoire dans lequel l'album sera créé, au même niveau que le précédent, disons `~/album` :
`$ mkdir ~/album`

Allez au niveau supérieur de ces répertoires :
`$ cd ~`

Et lancez bins avec les deux répertoires en paramètre (source et destination) :
`$ bins images album`

Cela va créer un album HTML, avec des éventuels sous-albums, des images timbre-poste et des images à l'échelle.

bins possède des options de ligne de commande. Tapez :
`$ bins -h`

Pour les voir. Jetez un oeil au README original de SWIGS pour en apprendre plus.

Si vous désirez ajouter des commentaires pour les images, vous pouvez utiliser le programme bins_edit. Par exemple, pour ajouter le commentaire « mon image » à img.jpg, rendez-vous dans le répertoire des image (là ou se trouve img.jpg), et tapez :
`$ bins_edit -d "my picture" img.jpg`

l'option -d indique qu'il s'agit de la description. Vous pouvez ajouter d'autre champs, comme le lieu ou la date. Lancez bins_edit sans arguments pour voir les champs disponibles. Le texte de la description peut être en HTML avec l'option `--html`. Vous pouvez lancez bins_edit sur plusieurs images, par exemple :
`$ bins_edit -l "Paris" -y "2001" *.jpg`

`bins_edit` créé un fichier .xml pour chaque image. Vous pouvez éditer ce fichier à la main si vous le désirer à l'aide d'un éditeur supportant l'Unicode.

Pour chaque album (et sous-album) vous pouvez également mettre un titre, une description et choisir une image pour représenter l'album. Pour cela, utilisez bins_edit avec l'option `--album`. Tapez `bins_edit --help` pour plus d'information.

Vous pouvez personnaliser bins en éditant les valeurs des paramètres du fichier de configuration `binsrc`. Un tel fichier est fourni avec BINS. Il se trouve dans /etc/bins si vous avez effectué l'installation en tant que root, sinon il se trouve dans ~/.bins. Dans le premier cas, vous pouvez le copier de `/etc/bins` vers `~/.bins` et ensuite l'éditer `~/.bins` si vous ne voulez pas changer la configuration globale. Lisez les commentaires dans ce fichier pour plus d'informations.

Vous pouvez également utiliser ces paramètres (quand cela a un sens) dans la section <bins> des fichiers de description des albums (album.xml) ou des images (fichier_image.jpg.xml par exemple). Vous pouvez ainsi changer les paramètres pour un album particulier (ou un sous-album et ses descendants) ou même pour une page d'image.

L'apparence des albums peut aussi être changée via les templates HTML. BINS recherche ces fichiers d'abord dans le repertoire spécifié par l'option `-t`, puis dans `~/.bins` et enfin dans `/etc/bins`.

## Licence

BINS est un logiciel libre, sous la GNU GPL.

BINS est Copyright © 2001,2002 Jérôme Sautret (Jerome @ Sautret.org).

Code original de SWIGS est Copyright © 2000 Brendan McMahan (mcmahahb @ whitman.edu).

Code initial basé sur IDS 0.21 est Copyright © John Moose (moosejc @ muohio.edu).

Last modified: Sun Jun 9 21:47:09 CEST 2002