--- Imaging-1.1.7-orig/PIL/TiffImagePlugin.py 2009-11-01 02:44:12.000000000 +0200 +++ Imaging-1.1.7/PIL/TiffImagePlugin.py 2012-11-13 03:45:11.280000132 +0200 @@ -69,7 +69,7 @@ def il32(c,o=0): return ord(c[o]) + (ord(c[o+1])<<8) + (ord(c[o+2])<<16) + (ord(c[o+3])<<24) def ol16(i): - return chr(i&255) + chr(i>>8&255) + return chr(i>>8&255) + chr(i&255) def ol32(i): return chr(i&255) + chr(i>>8&255) + chr(i>>16&255) + chr(i>>24&255) @@ -197,6 +197,8 @@ } PREFIXES = ["MM\000\052", "II\052\000", "II\xBC\000"] +PREFIX_TO_BYTEORDER = {"MM":"b", "II":"l"} +BYTEORDER_TO_PREFIX = {"b":"MM", "l":"II"} def _accept(prefix): return prefix[:4] in PREFIXES @@ -219,6 +221,8 @@ self.o16, self.o32 = ol16, ol32 else: raise SyntaxError("not a TIFF IFD") + self.byteorder = PREFIX_TO_BYTEORDER[self.prefix] + self.reset() def reset(self): @@ -749,7 +753,7 @@ def _save(im, fp, filename): try: - rawmode, prefix, photo, format, bits, extra = SAVE_INFO[im.mode] + rawmode, prefix, byteorder, photo, format, bits, extra = SAVE_INFO[im.mode] except KeyError: raise IOError, "cannot write mode %s as TIFF" % im.mode