OVH Cloud OVH Cloud

description du format EXIF

11 réponses
Avatar
Vincent
Bonjour,

Dans un programme que j'ai réalisé, j'ai besoin de lire les données EXIF
d'une photo.
Où trouver la description d'un fichier EXIF en détail ?


Merci

Vincent

10 réponses

1 2
Avatar
Florent
http://www.exifer.friedemann.info/

Vincent a présenté l'énoncé suivant :
Bonjour,

Dans un programme que j'ai réalisé, j'ai besoin de lire les données EXIF
d'une photo.
Où trouver la description d'un fichier EXIF en détail ?


Merci

Vincent


--
http://www.zoo-logique.org/fthouret/photos/
http://frpn.free.fr
news://news.zoo-logique.org/modeles-en-carton

Avatar
Georges Solignac
"Vincent" a écrit
Dans un programme que j'ai réalisé, j'ai besoin de lire les données
EXIF d'une photo.
Où trouver la description d'un fichier EXIF en détail ?


C'est en anglais mais tu devrai y trouver ton bonheur
http://www.exif.org/

--
Georges Solignac

Avatar
Vincent
Merci à tous,
Je vais ça !

merci

Vincent


"Georges Solignac" a écrit dans le message de
news:4129a817$0$14612$
"Vincent" a écrit
Dans un programme que j'ai réalisé, j'ai besoin de lire les données
EXIF d'une photo.
Où trouver la description d'un fichier EXIF en détail ?


C'est en anglais mais tu devrai y trouver ton bonheur
http://www.exif.org/

--
Georges Solignac




Avatar
Eric Hourant
Vincent,
Si tu dois accéder aux données EXIF directement au départ de ton programme,
tu devras te farcir le manuel de la description EXIF plus de la
programmation.
Je te conseille plutôt d'utiliser un ocx (ou active X) pour cela. Il en
existe plusieurs, certains gratuits, d'autres pas. Cet ocx te permettra
d'accéder sans te casser la tête à toutes les données exif directement au
départ de ton programme.
J'utilise watermarker (www.watermarker.com) qui est assez simple à mettre en
route. Il est payant mais la version d'évaluation ne semble pas être
limitée.

Pour l'utiliser, c'est un truc qui ressemble à ceci (CA-Visual-Object pour
ma part mais la syntaxe est similaire en VB, VBA ou C++) :

lRetVal :=SELF:iExif:ReadExifInfo("TEMP.JPG") // charge l'image
IF lRetVal
SELF:oDcExifMLE:value :=SELF:iEXIF:GetParam("Model")+",
"+SELF:iEXIF:GetParam("DateTimeOriginal")+CRLF
SELF:oDcExifMLE:value +="ISO :
"+SELF:iEXIF:GetParam("ISOSpeedRatings")+", Focale :
"+iEXIF:GetParam("FocalLength")+CRLF
SELF:oDcExifMLE:value +="Ouverture : "+SELF:iEXIF:GetParam("FNumber")+",
vitesse : "+iEXIF:GetParam("ExposureTime")+CRLF
IF SELF:iEXIF:GetParam("Flash")=="On"
SELF:oDcExifMLE:value +="Flash : "+SELF:iEXIF:GetParam("Flash")+CRLF
ENDIF
SELF:oDcExifMLE:value +="Exposition :
"+SELF:iEXIF:GetParam("ExposureProgram")+"
"+iEXIF:GetParam("MeteringMode")+CRLF
IF ! Empty(iEXIF:GetParam("Comments") )
SELF:oDcExifMLE:value +=SELF:iEXIF:GetParam("Comments")+CRLF
ENDIF
SELF:oDcExifMLE:value +="(c) "+SELF:iEXIF:GetParam("Copyright")+CRLF
ENDIF

J'espère que cela peut t'aider.

Eric


"Vincent" a écrit dans le message de
news:cgc883$equ$
Bonjour,

Dans un programme que j'ai réalisé, j'ai besoin de lire les données EXIF
d'une photo.
Où trouver la description d'un fichier EXIF en détail ?


Merci

Vincent




Avatar
Jean Nemard
Eric Hourant wrote:

Pour l'utiliser, c'est un truc qui ressemble à ceci (CA-Visual-Object pour
ma part mais la syntaxe est similaire en VB, VBA ou C++) :


Il vaut mieux utiliser la lib perl exif que cette monstruosité syntaxique !

Avatar
Eric Hourant
Jean,
Il vaut mieux utiliser la lib perl exif <<
Tu pourrais peut-être montrer un exemple de code. Non ?



Eric

"Jean Nemard" a écrit dans le message de
news:
Eric Hourant wrote:

Pour l'utiliser, c'est un truc qui ressemble à ceci (CA-Visual-Object
pour


ma part mais la syntaxe est similaire en VB, VBA ou C++) :


Il vaut mieux utiliser la lib perl exif que cette monstruosité syntaxique
!



Avatar
Emmanuel Thiry
Pour afficher le champ "FocalLength" d'une photo :

#!/usr/bin/perl
use Image::ExifTool qw(ImageInfo);
$file = "TEMP.JPG";
$info = ImageInfo($file);
print "FocalLength : $$info{'FocalLength'}n";

Pour afficher TOUS les champs exif (triés par ordre alphabétique) d'une
photo, remplacer la dernière ligne par :
print "$_ => $$info{$_}n" foreach sort keys %$info;



"Eric Hourant" a écrit dans le message de
news:412ad0b7$0$4130$
Jean,
Il vaut mieux utiliser la lib perl exif <<
Tu pourrais peut-être montrer un exemple de code. Non ?



Eric

"Jean Nemard" a écrit dans le message de
news:
Eric Hourant wrote:

Pour l'utiliser, c'est un truc qui ressemble à ceci (CA-Visual-Object
pour


ma part mais la syntaxe est similaire en VB, VBA ou C++) :


Il vaut mieux utiliser la lib perl exif que cette monstruosité
syntaxique


!






Avatar
jb
Si tu developpes en PHP, c'est archi simple !

http://fr3.php.net/manual/fr/function.exif-read-data.php
Avatar
Eric Hourant
Emmanuel,

Je ne vois pas très bien la différence entre les 2. Le principe revient
toujours à charger une image dans un object. Si le chargement est correct,
on affiche une ou plusieurs propriétés.

lOk :=iExif:ReadExifInfo("TEMP.JPG") // charge l'image dans l'object
iExif
IF lOk // si le fichier est correct
? iEXIF:GetParam("FocalLength") // affiche la focale
endif

Je pourrais même faire
iExif:ReadExifInfo("TEMP.JPG"):GetParam("FocalLength") mais je trouve cela
moins lisible.

Dans l'exemple de Jerz (en PHP cfr
http://fr3.php.net/manual/fr/function.exif-read-data.php), c'est plus ou
moins la même chose.

exif_read_data() lit les en-têtes EXIF des images JPEG et TIFF. Elle


retourne un tableau associatif avec comme index les noms des en-têtes, et en
valeur, les valeurs des en-têtes. Si aucune donnée n'a pu être lue, elle
retourne FALSE.
filename est le nom du fichier à lire. Il ne peut pas être une URL.

sections est une liste de valeur séparées par des virgules des sections qui
devront être présentées dans le tableau de résultat.

<<

Peu importe le language, le principe est identique et la syntaxe similaire.

Eric


"Emmanuel Thiry" a écrit dans le message de
news:
Pour afficher le champ "FocalLength" d'une photo :

#!/usr/bin/perl
use Image::ExifTool qw(ImageInfo);
$file = "TEMP.JPG";
$info = ImageInfo($file);
print "FocalLength : $$info{'FocalLength'}n";

Pour afficher TOUS les champs exif (triés par ordre alphabétique) d'une
photo, remplacer la dernière ligne par :
print "$_ => $$info{$_}n" foreach sort keys %$info;



"Eric Hourant" a écrit dans le message
de

news:412ad0b7$0$4130$
Jean,
Il vaut mieux utiliser la lib perl exif <<
Tu pourrais peut-être montrer un exemple de code. Non ?



Eric

"Jean Nemard" a écrit dans le message de
news:
Eric Hourant wrote:

Pour l'utiliser, c'est un truc qui ressemble à ceci
(CA-Visual-Object




pour
ma part mais la syntaxe est similaire en VB, VBA ou C++) :


Il vaut mieux utiliser la lib perl exif que cette monstruosité
syntaxique


!











Avatar
Emmanuel Thiry
Bien sûr que le principe est similaire dans les différents langages. Chacun
choisit en fonction de ses préférences et compétences.
Je trouve le Perl plus agréable à lire mais ça n'engage que moi.
La méthode Perl à néanmoins quelques avantages :
- gratuit
- multiplateforme sans recompilation
- pas d'ActiveX à enregistrer dans le système


"Eric Hourant" a écrit dans le message de
news:412b3cb9$0$3882$
Emmanuel,

Je ne vois pas très bien la différence entre les 2. Le principe revient
toujours à charger une image dans un object. Si le chargement est correct,
on affiche une ou plusieurs propriétés.

lOk :=iExif:ReadExifInfo("TEMP.JPG") // charge l'image dans
l'object

iExif
IF lOk // si le fichier est correct
? iEXIF:GetParam("FocalLength") // affiche la focale
endif

Je pourrais même faire
iExif:ReadExifInfo("TEMP.JPG"):GetParam("FocalLength") mais je trouve cela
moins lisible.

Dans l'exemple de Jerz (en PHP cfr
http://fr3.php.net/manual/fr/function.exif-read-data.php), c'est plus ou
moins la même chose.

exif_read_data() lit les en-têtes EXIF des images JPEG et TIFF. Elle


retourne un tableau associatif avec comme index les noms des en-têtes, et
en

valeur, les valeurs des en-têtes. Si aucune donnée n'a pu être lue, elle
retourne FALSE.
filename est le nom du fichier à lire. Il ne peut pas être une URL.

sections est une liste de valeur séparées par des virgules des sections
qui

devront être présentées dans le tableau de résultat.

<<

Peu importe le language, le principe est identique et la syntaxe
similaire.


Eric


"Emmanuel Thiry" a écrit dans le message de
news:
Pour afficher le champ "FocalLength" d'une photo :

#!/usr/bin/perl
use Image::ExifTool qw(ImageInfo);
$file = "TEMP.JPG";
$info = ImageInfo($file);
print "FocalLength : $$info{'FocalLength'}n";

Pour afficher TOUS les champs exif (triés par ordre alphabétique) d'une
photo, remplacer la dernière ligne par :
print "$_ => $$info{$_}n" foreach sort keys %$info;



"Eric Hourant" a écrit dans le message
de

news:412ad0b7$0$4130$
Jean,
Il vaut mieux utiliser la lib perl exif <<
Tu pourrais peut-être montrer un exemple de code. Non ?



Eric

"Jean Nemard" a écrit dans le message de
news:
Eric Hourant wrote:

Pour l'utiliser, c'est un truc qui ressemble à ceci
(CA-Visual-Object




pour
ma part mais la syntaxe est similaire en VB, VBA ou C++) :


Il vaut mieux utiliser la lib perl exif que cette monstruosité
syntaxique


!















1 2