Friday, March 26, 2010

More Windows corruption woes

Yet again I get a question from a user with images that have been corrupted by editing metadata with Windows. The biggest problem is that Windows may change the byte order of the EXIF when the metadata was edited. This is a REALLY, REALLY BAD thing to do because it is impossible to properly change the byte order of some proprietary information. So the effect is that this information is corrupted, causing errors when other software that parses this information reads the image.

This was a problem with Windows XP up to and including Service Pack 3, but from one report this seems to have been fixed in Vista and Windows 7. If so, there must still be a lot of people running XP out there because I keep seeing this complaint.


2 comments:

  1. I'm seeing the same behavior with Windows 7. After rotating files using Windows Explorer, the byte order in the EXIF data from my Canon XSi changes from big-endian (0x4d4d) to little-endian (0x4949). This has wreaked havoc with my homemade EXIF-parsing code. Unsurprisingly, the change is irreversible: rotating the thumbnail back to its original orientation doesn't undo the byte-order change. Less seriously, the time and date (0x0132,DateTime) value is altered to the time and date at which the rotation was performed. There are other date/times available in EXIF, and presumably some of those were left unmangled.

    ReplyDelete
  2. Thanks for the update. I'm not surprised that it isn't fixed in Windows 7. Microsoft has demonstrated a real lack of respect for metadata integrity.

    Page 25 of the MWG 2.0 recommendations states:

    "A changer SHOULD preserve the existing byte-order."

    Ironically, Microsoft is a member company of the MWG (see www.metadataworkinggroup.org).

    It would be good if they obeyed their own recommendations.

    Idiots.

    ReplyDelete