samedi 20 septembre 2008

Externaliser ses photos dans la photothèque

Ma photothèque iPhoto (version 7 d’iLife ’08) a une fâcheuse tendance à grossir au delà de ce que les photos seules occuperait en espace disque. iPhoto m’annonce une taille de photothèque de 11,5 Go alors que la photothèque occupe allègrement plus de 20 Go. Ceci est dû au mécanisme de gestion des originaux de iPhoto et il peut être tentant de les extraire pour ne conserver que les photos modifiées.

Tout d'abord, à l'importation, la photo est placée dans un dossier portant le nom de l'événement (peut-être un nom par défaut) dans le dossier de l'année de la photo lui même dans le dossier Originals.

On aura donc, par exemple : "iPhoto Library/Originals/2008/Test/Photo.jpg"

A la moindre modification, la photo est dupliquée dans un autre dossier "Modified". Par exemple : "iPhoto Library/Modified/2008/Test/Photo.jpg"

laissant l'original à sa place pour permettre de la restaurer.

A noter qu'une option d'iPhoto permet de ne pas copier les images originales dans la bibliothèque. Seules les images modifiées y sont copiées. A la place de l’original dans la photothèque, iPhoto crée un alias.

Si on supprime purement et simplement de la photothèque les dossiers des photos originales, iPhoto ne permettra plus qu’on accède aux modifications des photos (seule la visualisation est possible). Il faut donc conserver la possibilité de « re-connecter » les originaux à la photothèque.

Soit donc, on remplace chaque photo originale par un alias, les originaux étant alors stockés ailleurs (externalisés). Cette opération n’est envisageable que s’il n’y a pas beaucoup de photos ou alors, il faut l’automatiser avec un script.

Soit on supprime les photos originales et on modifie le catalogue pour y indiquer le nouveau chemin d’accès aux originaux. Ce fichier catalogue se trouve à la racine de la photothèque; il se nomme « AlbumData.XML » On peut le modifier avec TextWranger, un éditeur de texte gratuit et très puissant qui permet de faire des remplacement multiples.

Voici la structure d’un enregistrement d’une image dans ce fichier :

<dict>
<key>MediaType</key>
<string>Image</string>
<key>Caption</key>
<string>Paris : Ile de la Cité</string>
<key>Comment</key>
<string></string>
<key>GUID</key>
<string>73A7CEDD-9A1C-4608-804F-4A549F9AE4A1</string>
<key>Aspect Ratio</key>
<real>0.750000</real>
<key>Rating</key>
<integer>0</integer>
<key>Roll</key>
<integer>65</integer>
<key>DateAsTimerInterval</key>
<real>88005763.000000</real>
<key>ModDateAsTimerInterval</key>
<real>90787562.270161</real>
<key>MetaModDateAsTimerInterval</key>
<real>241479269.408358</real>
<key>ImagePath</key>
<string>/Users/famille/Pictures/iPhoto Library/Modified/2003/Île de la Cité/DSC00036.JPG</string>
<key>OriginalPath</key>
<string>/Users/famille/Pictures/iPhoto Library/Originals/2003/Île de la Cité/DSC00036.JPG</string>
<key>ThumbPath</key>
<string>/Users/famille/Pictures/iPhoto Library/Data/2003/Île de la Cité/DSC00036.jpg</string>
<key>Keywords</key>
<array>
<string>22</string>
<string>9</string>
</array>
</dict>



On voit que le catalogue conserve le chemin de l’image modifiée, celui de l’image originale et celui de la vignette pour l’affichage en réduction. Le chemin de la photo originale peut donc être en fait celui d’un alias qui pointe sur la vraie photographie.

Si on veut vraiment externaliser les originaux, il faut modifier les chemins d’accès dans ce fichier. Comme ces chemins commencent par la même chaîne : « /Users//Pictures/iPhoto Library/Originals », il est facile de la modifier en une seule commande dans l’éditeur, par exemple par : « /Volumes//Photos originales » à la condition bien sûr de conserver le classement de iPhoto (par années puis par événements).

Donc, le plus simple est de recopier (déplacer) les dossiers à l’intérieur de Originals, puis de modifier le fichier AlbumData.xml. Ensuite, on peut supprimer les originaux.

Par la suite, lorsqu’on ajoute des photos à la photothèque, il faut, soit conserver le mécanisme des alias (et avoir indiqué au logiciel de ne pas importer les photos dans la photothèque), soit recommencer l’opération ci-dessus à chaque importation.

Aucun commentaire: