#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 .
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