Bonjour,
Avec le code suivant :
j'ai le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 metadata = pyexiv2.ImageMetadata(file) metadata.read() # Exif metadata['Exif.Image.Artist'] = theAuthor metadata['Exif.Image.Copyright'] = theCopyright print(type(theAuthor)) print(type(theAuthor.encode())) print (theAuthor) str= bytes(theAuthor, 'utf-8') metadata['Exif.Image.XPAuthor'] = pyexiv2.ExifTag('Exif.Image.XPAuthor', theAuthor.encode('ascii')) # metadata['Exif.Image.XPAuthor'] = pyexiv2.ExifTag('Exif.Image.XPAuthor', str) # metadata['Exif.Image.XPAuthor'] = pyexiv2.ExifTag('Exif.Image.XPAuthor', theAuthor.encode()) #metadata['Exif.Image.XPAuthor'] = theAuthor
Les lignes de code en commentaire sont des essais (désespérés...) qui donnent un résultat identique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $ ./setCopyright.py -a 'Prenom Auteur' -y 2000 -p Paris X.jpg <class 'str'> <class 'bytes'> Prenom Auteur Traceback (most recent call last): File "./setCopyright.py", line 91, in <module> metadata['Exif.Image.XPAuthor'] = pyexiv2.ExifTag('Exif.Image.XPAuthor', theAuthor.encode('ascii')) File "/usr/local/lib/python3.7/site-packages/pyexiv2/exif.py", line 103, in __init__ self._set_value(value) File "/usr/local/lib/python3.7/site-packages/pyexiv2/exif.py", line 212, in _set_value self.raw_value = self._convert_to_string(value) File "/usr/local/lib/python3.7/site-packages/pyexiv2/exif.py", line 175, in _set_raw_value self._tag._setRawValue(value) ValueError: Invalid value $
alors que :
Il semblerait que le module pyexiv2 soit concerné comme semble l'indiquer le dump.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5$ cat exiv2.prm set Exif.Image.XPAuthor Ascii prenom et nom de l auteur $ exiv2 -m exiv2.prm X.jpg $ exiv2 -p a pr X.jpg | grep auteur Exif.Image.XPAuthor Ascii 26 prenom et nom de l auteur
A moins qu'il ne s'agisse d'un autre format que je n'ai pas repéré.
Si vous avez une idée ....
Merci de votre aide.
Partager