Accueil > Linux > Export de vos données de KPhotoAlbum vers IPTC

Export de vos données de KPhotoAlbum vers IPTC

Depuis environ 5 ans j’utilise KPhotoAlbum. Afin d’éviter de devoir retagger mes photos pour les  partager sur mon compte flickr, j’ai modifié un script de Pierre Doucet trouvé sur le site linuxfr

A propos

  • KPhotoAlbum (se nommait auparavant kimdaba), ce logiciel fonctionne sous KDE et permet d’associer pour chaque photo des mots clefs comme par exemple (Lieu, Personne, Evènement).  Vous pouvez ensuite retrouver très rapidement des photos en fonction des mots clefs désirés. Ce logiciel me permet de retrouver en moins de 5 secondes des photos sur une base de + de 20.000 photos.
  • IPTC Standard permettant de véhiculer des informations directement dans la photo. Ceci permet donc visualiser les informations depuis un logiciel compatible IPTC.

Installation

Avant d’utiliser le script il faut avant tout installer les librairies perl.

mkdir -p ~/local/bin
perl -MCPAN -e shell

Répondre oui à la question posée, ensuite exécuter les lignes suivantes

cpan>
o conf makepl_arg PREFIX=~/local
o conf commit
install Image::Kimdaba
install Image::IPTCInfo

Le script

Copier le script ci dessous vers le fichier kphotoalbum2iptc.pl

Par soucis de sécurité le script s’exécute en mode simulation, pour l’activer, modifier la variable onlyparse à 0

Exemple d’utilisation

./kphotoalbum2iptc.pl /path/album "^sous repertoire.*.jpg|.jpeg"

kphotoalbum2iptc.pl

#! /usr/bin/perl -w
# kphotoalbum2iptc.pl

# Param 1 : Chemin du catalogue KPhotoAlbum
# Param 2 : Filtre (ex: "^dvd 3.*\.jpg|\.jpeg" )


# A MODIFIER
use lib qw(/home/b_adele/local/share/perl5/site_perl/5.10.0/);
$verbose=0;
$onlyparse=0;

# Chargement des librairies
use Image::Kimdaba;
use Image::IPTCInfo;

my @ListOfPictures;

$folder = $ARGV[0];
$filter = $ARGV[1];

# Parse le catalogue KPhotoAlbum
print "Chemin de base: $folder\n";
parseDB( "$folder" );

# Compte le nombre de photos
my $nb1= scalar keys %imageattributes;
my $nb2= scalar keys %imageoptions;
print "$nb1 photos dont $nb2 avec des tags:\n";


# Ajout des infos dans la photo (IPTC)
$count=0;
foreach $kphoto (keys(%imageoptions))
{
    if ($kphoto =~ m/$filter/i ) {
        $count++;
    print "Photo en cours : $folder/$kphoto (N° $count)\n";
        my $iptc = create Image::IPTCInfo("$folder/$kphoto");
        foreach $kkey (keys(%{$imageoptions{$kphoto}}))
        {
            if ($verbose) { print "--> $kkey\n"; }
            foreach $values (@{${$imageoptions{$kphoto}}{$kkey}})
            {
                if ($verbose) { print "-----> $values\n"; }
                $iptc->AddKeyword("$values");
            }
        }
   
    if (!$onlyparse) { $iptc->Save();}
    }
}

print "$count photos traitées";

b_adele Linux , , ,

  1. 20/04/2009 à 13:38 | #1

    Salut,

    Amusant de voir un vieux script, fait il y a quelques années, retrouver une utilité ;-)

    Depuis quelques temps, je suis passé à F-spot sous Gnome, toujours avec l’aide de quelques scripts perl…

    Pierre

  2. moSaN
    20/04/2009 à 15:23 | #2

    Juste pour être certain de bien comprendre le script. Je suis loin de tout comprendre dès qu’il s’agit de perl.

    Pour désactiver le mode simulation il faut changer la variable «onlyparse» mais je ne vois aucune référence à cette variable dans le bout de code.
    Ne serait-ce pas plutôt la variable «verbose».

    Ou alors la variable «onlyparse» est une variable associée à IPTC qui bloque la fonction d’écriture Save() ?

  3. davitof
    20/04/2009 à 17:20 | #3

    Euh, je ne connais pas perl, alors je dis surement une bêtise, mais tu es sûr, pour la variable onlyparse? Je n’en vois pas trace dans le script…

  4. 20/04/2009 à 21:02 | #4

    Rien de tout çà :) , ce n’était pas le bon code, j’ai corrigé l’article.

  5. davitof
    20/04/2009 à 22:01 | #5

    @moSaN: je ne crois pas que ce soit verbose. Aussi bien par le sens du mot « verbose » en anglais que par ce que je crois comprendre du script, je pense que la variable verbose sert uniquement à afficher plus d’informations en cours d’exécution.

  6. davitof
    20/04/2009 à 22:03 | #6

    @b_adele: ah ben là oui, je comprends :-) C’est vrai que le perl ressemble au php. Ou plutôkt le contraire ;-)

  7. 21/04/2009 à 07:58 | #7

    Bonjour,

    Sinon, il y a Sagittarius :

    http://ubunteros.tuxfamily.org/spip.php?article185

    @+

  8. 21/04/2009 à 08:44 | #8

    @Christophe, je ne connaissais pas Sagittarius, néanmoins il ne semble pas pouvoir exporter les tags déjà saisies dans KPhotoAlbum vers le format IPTC, le but du script est justement d’éviter de ressaisir les informations déjà saisies précédemment sur KPhotoAlbum.

  9. moSaN
    21/04/2009 à 10:32 | #9

    Merci b_adele pour ce script qui devrait m’éviter bien du boulot :)

  10. 24/04/2009 à 15:30 | #10

    Fspot gère mes TAG directement dans flickr…c’est pratique.

  1. Pas encore de trackbacks