Python を使用して、すべてのメタデータを除外して、TIFF 画像の md5 ハッシュを計算するにはどうすればよいですか?
JPGで、私は次のようなことをします:
def jpeg(fh):
hash = hashlib.md5()
assert fh.read(2) == "\xff\xd8"
while True:
marker,length = struct.unpack(">2H", fh.read(4))
assert marker & 0xff00 == 0xff00
if marker == 0xFFDA: # Start of stream
hash.update(fh.read())
break
else:
fh.seek(length-2, os.SEEK_CUR)
print "Hash: %r" % hash.hexdigest()
>> jpeg(file("test.jpg"))
>> Hash: 'debb4956941795d6ef48717e4c9cc433'
これを TIFF 画像に拡張する方法がわかりません。
画像内のメタデータの場所が変わる可能性があるため、TIFF の場合はややこしいように見えます (常に先頭または末尾にあるとは限りません)。