Date de prise de vue via EXIF en PHP
Herve_be
Messages postés
1121
Date d'inscription
Statut
Membre
Dernière intervention
-
Herve_be Messages postés 1121 Date d'inscription Statut Membre Dernière intervention -
Herve_be Messages postés 1121 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Pour afficher un album photo je vais chercher la date de prise de vue dans les données EXIF des fichiers .jpg et je trie les photos selon cette date.
J'utilise le code suivant
Ceci fonctionnait très bien mais je viens de m'apercevoir que ça ne fonctionne plus, plus exactement pour certaines photos j'obtiens bien la date (par exemple "2018:09:13 12:25:52", pour d'autres je n'obtiens rien du tout alors que dans l'explorateur Windows (volet des détails) je vois bien la date de prise de vue des deux.
Y a-t-il une différence à ce niveau entre les 2 versions de PHP ?
Merci d'avance
Pour afficher un album photo je vais chercher la date de prise de vue dans les données EXIF des fichiers .jpg et je trie les photos selon cette date.
J'utilise le code suivant
$exif_data = exif_read_data($file,0,true); $Date=$exif_data['EXIF']['DateTimeDigitized'];
Ceci fonctionnait très bien mais je viens de m'apercevoir que ça ne fonctionne plus, plus exactement pour certaines photos j'obtiens bien la date (par exemple "2018:09:13 12:25:52", pour d'autres je n'obtiens rien du tout alors que dans l'explorateur Windows (volet des détails) je vois bien la date de prise de vue des deux.
Y a-t-il une différence à ce niveau entre les 2 versions de PHP ?
Merci d'avance
A voir également:
- Php exif
- Exif date changer - Télécharger - Albums photo
- Easy php - Télécharger - Divers Web & Internet
- Exif tool - Télécharger - Photo & Graphisme
- Expert php pinterest - Télécharger - Langages
- Exif pilot - Télécharger - Photo & Graphisme
8 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu en dire plus à propos de ces deux versions?
tu peux aussi déterminer tous les attributes exif d'une image avec la méthode décrite en https://www.php.net/manual/fr/function.exif-read-data.php
tu peux aussi déterminer tous les attributes exif d'une image avec la méthode décrite en https://www.php.net/manual/fr/function.exif-read-data.php
C'est justement ce que je cherche, quelle est la différence entre ces 2 versions.
Si je liste tous les tags comme ans l'exemple que tu donnes (voir ci-dessous)
l'image 088 me donne bien la date de prise de vue, pas l'image 087 : pourquoi ?
alors que l'explorateur Windows me donne bien la date de prise de vue pour les deux
qu'avant (avant le passage à PHP 7.2 ?) ça fonctionnait bien
et que les 2 photos ont été prises à quelques minutes d'intervalle avec le même appareil photo
087.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 207641
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 0
IFD0.ImageWidth: 1600
IFD0.ImageLength: 1067
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Orientation: 1
088.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 173968
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.ApertureFNumber: f/4.8
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
IFD0.ImageDescription: Exif JPEG
IFD0.Make: Camera
IFD0.Model: DC-4300
IFD0.Orientation: 1
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Software: DC-4300
IFD0.DateTime: 2003:01:03 06:42:01
IFD0.YCbCrPositioning: 2
IFD0.Exif_IFD_Pointer: 2306
IFD0.UndefinedTag:0xEA1C: ê
THUMBNAIL.Compression: 6
THUMBNAIL.XResolution: 72/1
THUMBNAIL.YResolution: 72/1
THUMBNAIL.ResolutionUnit: 2
THUMBNAIL.JPEGInterchangeFormat: 4876
THUMBNAIL.JPEGInterchangeFormatLength: 6461
THUMBNAIL.YCbCrPositioning: 2
EXIF.ExposureTime: 1/105
EXIF.FNumber: 48/10
EXIF.ExposureProgram: 2
EXIF.ISOSpeedRatings: 100
EXIF.ExifVersion: 0210
EXIF.DateTimeOriginal: 2011:08:14 09:37:54
EXIF.DateTimeDigitized: 2011:08:14 09:37:54
EXIF.ComponentsConfiguration:
EXIF.ShutterSpeedValue: 67/10
EXIF.ApertureValue: 46/10
EXIF.ExposureBiasValue: 0/10
EXIF.MaxApertureValue: 31/10
EXIF.MeteringMode: 5
EXIF.LightSource: 0
EXIF.Flash: 0
EXIF.SubSecTimeOriginal: 45
EXIF.SubSecTimeDigitized: 45
EXIF.FlashPixVersion: 0100
EXIF.ColorSpace: 1
EXIF.ExifImageWidth: 1200
EXIF.ExifImageLength: 800
EXIF.InteroperabilityOffset: 4748
EXIF.FileSource:
EXIF.UndefinedTag:0xEA1C: ê
INTEROP.InterOperabilityVersion: 0100
Si je liste tous les tags comme ans l'exemple que tu donnes (voir ci-dessous)
l'image 088 me donne bien la date de prise de vue, pas l'image 087 : pourquoi ?
alors que l'explorateur Windows me donne bien la date de prise de vue pour les deux
qu'avant (avant le passage à PHP 7.2 ?) ça fonctionnait bien
et que les 2 photos ont été prises à quelques minutes d'intervalle avec le même appareil photo
087.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 207641
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 0
IFD0.ImageWidth: 1600
IFD0.ImageLength: 1067
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Orientation: 1
088.jpg
FILE.FileName: Temp.jpeg
FILE.FileDateTime: 1551612118
FILE.FileSize: 173968
FILE.FileType: 2
FILE.MimeType: image/jpeg
FILE.SectionsFound: ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
COMPUTED.html: width="1200" height="800"
COMPUTED.Height: 800
COMPUTED.Width: 1200
COMPUTED.IsColor: 1
COMPUTED.ByteOrderMotorola: 1
COMPUTED.ApertureFNumber: f/4.8
COMPUTED.Thumbnail.FileType: 2
COMPUTED.Thumbnail.MimeType: image/jpeg
IFD0.ImageDescription: Exif JPEG
IFD0.Make: Camera
IFD0.Model: DC-4300
IFD0.Orientation: 1
IFD0.XResolution: 72/1
IFD0.YResolution: 72/1
IFD0.ResolutionUnit: 2
IFD0.Software: DC-4300
IFD0.DateTime: 2003:01:03 06:42:01
IFD0.YCbCrPositioning: 2
IFD0.Exif_IFD_Pointer: 2306
IFD0.UndefinedTag:0xEA1C: ê
THUMBNAIL.Compression: 6
THUMBNAIL.XResolution: 72/1
THUMBNAIL.YResolution: 72/1
THUMBNAIL.ResolutionUnit: 2
THUMBNAIL.JPEGInterchangeFormat: 4876
THUMBNAIL.JPEGInterchangeFormatLength: 6461
THUMBNAIL.YCbCrPositioning: 2
EXIF.ExposureTime: 1/105
EXIF.FNumber: 48/10
EXIF.ExposureProgram: 2
EXIF.ISOSpeedRatings: 100
EXIF.ExifVersion: 0210
EXIF.DateTimeOriginal: 2011:08:14 09:37:54
EXIF.DateTimeDigitized: 2011:08:14 09:37:54
EXIF.ComponentsConfiguration:
EXIF.ShutterSpeedValue: 67/10
EXIF.ApertureValue: 46/10
EXIF.ExposureBiasValue: 0/10
EXIF.MaxApertureValue: 31/10
EXIF.MeteringMode: 5
EXIF.LightSource: 0
EXIF.Flash: 0
EXIF.SubSecTimeOriginal: 45
EXIF.SubSecTimeDigitized: 45
EXIF.FlashPixVersion: 0100
EXIF.ColorSpace: 1
EXIF.ExifImageWidth: 1200
EXIF.ExifImageLength: 800
EXIF.InteroperabilityOffset: 4748
EXIF.FileSource:
EXIF.UndefinedTag:0xEA1C: ê
INTEROP.InterOperabilityVersion: 0100
Bonjour,
Visiblement il s'agit d'un bug connu
https://bugs.php.net/bug.php?id=72682
https://abi-laboratory.pro/index.php?view=changelog&l=php&v=7.2.3
Visiblement il s'agit d'un bug connu
https://bugs.php.net/bug.php?id=72682
https://abi-laboratory.pro/index.php?view=changelog&l=php&v=7.2.3
Et que fait-on dans ce cas là ?
Pourquoi peut-il lire l'Exif de certaines photos et pas d'autres (où est la différence) ?
Pourquoi peut-il lire l'Exif de certaines photos et pas d'autres (où est la différence) ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
"Avant" avec la version 5.x je n'avais pas de problème, mon provider m'a obligé de passer à 7.
Maintenant je n'ai le choix qu'entre 7.1, 7.2 et 7.3; je viens de passer en 7.3 (au lieu de 7.2) : idem.
Ce qui est surprenant c'est que ça fonctionne pour certaines photos et pas pour d'autres.
Si je savais pourquoi je pourrais peut-être corriger les photos pour lesquelles ça ne fonctionne pas ...
Maintenant je n'ai le choix qu'entre 7.1, 7.2 et 7.3; je viens de passer en 7.3 (au lieu de 7.2) : idem.
Ce qui est surprenant c'est que ça fonctionne pour certaines photos et pas pour d'autres.
Si je savais pourquoi je pourrais peut-être corriger les photos pour lesquelles ça ne fonctionne pas ...
J'ai ouvert chaque photo "défectueuse" avec un logiciel de retouche d'image et re-sauvée sans la modifier : ça fonctionne.
Il y a donc peut-être un bug dans PHP 7 mais qui se produit pas pour toutes les photos !
J'ai un autre album qui pose le même problème mais il contient 525 photos : trop fastidieux de les ouvrir une à une; une astuce pour faire la même chose automatiquement ?
Il y a donc peut-être un bug dans PHP 7 mais qui se produit pas pour toutes les photos !
J'ai un autre album qui pose le même problème mais il contient 525 photos : trop fastidieux de les ouvrir une à une; une astuce pour faire la même chose automatiquement ?