Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/02/2011, à 22:02

luigifab

[Résolu / PERL] ExifTool qui ne veut pas écrire mes données Exif

Bonsoir

J'ai besoin de mettre à jour les données Exif de mes photos. J'ai donc réalisé un jolie script PERL pour cela.
Cependant, je n'arrive pas faire exactement ce que je veux.


Cette ligne de code fonctionne :

system 'exiftool -Artist="Azerty" -Copyright="Qwerty" -q -q -fast -overwrite_original /var/www/monImage.jpg';

Voici les informations sauvegardés :

exiftool -Artist -Copyright -s /var/www/monImage.jpg 
Artist                          : Azerty
Copyright                       : Qwerty

Ces lignes de code ne fonctionnent pas (du moins les informations ne sont pas sauvegardés) :

my $exifTool = new Image::ExifTool;
$exifTool->Options(FastScan => 1);
$exifTool->SetNewValue(Artist => 'Wxcvbn');
$exifTool->SetNewValue(Copyright => 'Uiopmlkj');
$exifTool->WriteInfo('/var/www/monImage.jpg');

Voici les informations sauvegardés :

exiftool -Artist -Copyright -s /var/www/monImage.jpg 
Artist                          : Azerty
Copyright                       : Qwerty

Effectivement je pourrais conserver la première ligne, mais j'ai pas envie big_smile.
C'est quoi que j'ai pas capiche ?

Dernière modification par luigifab (Le 15/03/2011, à 21:21)


Free Ukraine!

Hors ligne

#2 Le 01/03/2011, à 21:37

luigifab

Re : [Résolu / PERL] ExifTool qui ne veut pas écrire mes données Exif

Go die pour ce post inutile...

Dernière modification par luigifab (Le 15/03/2011, à 21:23)


Free Ukraine!

Hors ligne

#3 Le 13/03/2011, à 22:25

luigifab

Re : [Résolu / PERL] ExifTool qui ne veut pas écrire mes données Exif

J'ai identifié le problème. Voici mon script :

#!/usr/bin/perl

use Image::ExifTool;
use encoding qw(utf8);
use open qw(:std utf8);

system 'exiftool -Artist="Azerty" -Copyright="Qwerty" -q -q -fast -overwrite_original /home/fabrice/Bureau/monImage.jpg';

my $exifTool = new Image::ExifTool;
$exifTool->Options(FastScan => 1);
$exifTool->SetNewValue(Artist => 'Wxcvbn');
$exifTool->SetNewValue(Copyright => 'Uiopmlkj');
$exifTool->WriteInfo('/home/fabrice/Bureau/monImage.jpg');

Texto, il ne fonctionne pas...
Cependant, en supprimant la ligne use encoding qw(utf8);, il fonctionne correctement.


J'ai donc essayé de mettre use Image::ExifTool; après use open qw(:std utf8);.
Mais voilà plus rien ne fonctionne :

Incompatible encoding!
Compilation failed in require at Bureau/et.pl line 5.
BEGIN failed--compilation aborted at Bureau/et.pl line 5

Dernière modification par luigifab (Le 15/03/2011, à 21:22)


Free Ukraine!

Hors ligne

#4 Le 15/03/2011, à 20:56

luigifab

Re : [Résolu / PERL] ExifTool qui ne veut pas écrire mes données Exif

Problème résolu !

Comme dit précédemment, en supprimant la ligne use encoding qw(utf8);, tout fonctionne.
C'est parce qu'ExifTool ne peut pas fonctionner avec cette ligne.

Sauf qu'étant donné que mon programme à besoin de l'UTF8 partout, je ne peux pas m'en séparer.
La solution est la suivante, il faut remplacer :

use encoding qw(utf8);
use open qw(:std utf8);

par :

use utf8;
use open OUT => ':utf8';

Source : forum d'ExifTool, mailing list sur Perl.


Free Ukraine!

Hors ligne