Skip to content

✨ feat: exposer les métadonnées EXIF (date + réglages photographe)#38

Merged
ronan-develop merged 5 commits into
mainfrom
feat/#37-exif-metadata
Jul 19, 2026
Merged

✨ feat: exposer les métadonnées EXIF (date + réglages photographe)#38
ronan-develop merged 5 commits into
mainfrom
feat/#37-exif-metadata

Conversation

@ronan-develop

Copy link
Copy Markdown
Owner

Closes #37

Contexte

Le package extrait la preview JPEG mais n'exposait pas les métadonnées EXIF du RAW. Le parseur TIFF (TiffReader/IfdEntry) lit déjà les IFD génériquement et connaît ExifIfdPointer — l'infra était là.

Changements

  • RawMetadata (nouveau) : value object nullable — dateTimeOriginal, fNumber, exposureTime, iso, focalLength, lensModel, cameraMake, cameraModel + isEmpty().
  • ExtractedPreview : nouveau paramètre optionnel ?RawMetadata $metadata = nullnon-breaking (compatible 1.1).
  • TiffReader : préserve numérateur ET dénominateur des rationnels (avant : numérateur seul, insuffisant pour f-number/vitesse/focale). IfdEntry::rational() / rationalPair().
  • TiffTag : 6 tags EXIF déclarés (ExposureTime, FNumber, IsoSpeedRatings, DateTimeOriginal, FocalLength, LensModel).
  • TiffPreviewParser : lit Make/Model (IFD0) + suit ExifIfdPointer → EXIF IFD → mappe les réglages ; formate la vitesse en fraction (« 1/250 »).
  • Doc : section metadata dans le README et docs/index.md.

Portée

TIFF-based (CR2/NEF/ARW/DNG) via ExifIfdPointer. CR3 (ISO-BMFF) : preview OK, metadata = null pour l'instant (dégradation gracieuse). Tout est nullable.

Tests

185 tests, 303 assertions (174 existants intacts + 11 nouveaux) : IfdEntry rationnel, RawMetadata, et un test bout-en-bout sur TIFF synthétique avec sous-IFD EXIF (f/2.8, 1/250, ISO 400, 50 mm, objectif, date, appareil). composer validate --strict OK ; aucun Symfony hors bridge.

Suite

Release cible 1.2.0. Consommé ensuite par HomeCloud (require ^1.2) pour le « pack photographe ».

@ronan-develop
ronan-develop merged commit 4382600 into main Jul 19, 2026
7 checks passed
@ronan-develop
ronan-develop deleted the feat/#37-exif-metadata branch July 19, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exposer les métadonnées EXIF (date de prise de vue + réglages photographe)

1 participant