FAILURE MAP
← Case archive

FA-79140 / Image orientation metadata / Member archive

Regenerated thumbnail keeps a thumbnail orientation tag · case 05

Viewers that trust the thumbnail tag show a stale value for the regenerated thumbnail.

Member previewVariant 5 · 3 implementations · 8 checks per implementation

Case contract

After pixels have been baked upright, rewrite the metadata dictionary. When the (valid) Orientation is 5..8, exchange PixelXDimension/PixelYDimension, ImageWidth/ImageLength and XResolution/YResolution, moving a lone member of a pair to its partner key. Invalid or missing Orientation values mean no swap. Orientation is set to 1 only if the key exists; XMP:Orientation, if present, becomes the string "1"; ThumbOrientation is removed because the thumbnail is regenerated. Return sorted [key, value] pairs.

Why this case matters

Camera, phone and scanner images carry an orientation hint separately from the stored pixels; galleries, thumbnailers, editors and upload pipelines must interpret it consistently or photos appear sideways, mirrored or doubly rotated.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
regression: thumbnail orientation removal 0[["ImageLength", 4709], ["ImageWidth", 3039], ["Make", "Acme"], ["Orientation", 1], ["PixelYDimension", 1209], ["ThumbOrientation", 1], ["XMP:Orientation", "1"], ["XResolution", 133], ["YResolution", 298]][["ImageLength", 4709], ["ImageWidth", 3039], ["Make", "Acme"], ["Orientation", 1], ["PixelYDimension", 1209], ["XMP:Orientation", "1"], ["XResolution", 133], ["YResolution", 298]]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗