Python MultiTIf 中第一个图像的哈希值
Python Hash of First Image in MultiTIf
我正在尝试获取 Multi-TIf 第一页的哈希 MD5。我可以得到下面 A.tiff
的哈希值,但是如何只读取第一页的哈希值?
import hashlib
print(hashlib.md5(open('c:\temp\HASH\A.tif','rb').read()).hexdigest())
类似以下内容可能会有所帮助。您可以使用支持多页 TIFF 文件的 PIL 库。这样就可以使用seek()
获取第一页数据:
import hashlib
from PIL import Image
from itertools import chain
img = Image.open(r'A.tif')
img.seek(0)
md5 = hashlib.md5()
if isinstance(img.getpixel((0,0)), int):
md5.update(bytes(img.getdata()))
else:
md5.update(bytes(chain.from_iterable(img.getdata())))
print(md5.hexdigest())
对于大多数图像,这将提供一个元组,对于单色/灰度图像,它将提供 returns 值。这些都转换为字节和 运行 到 md5.update()
.
我正在尝试获取 Multi-TIf 第一页的哈希 MD5。我可以得到下面 A.tiff
的哈希值,但是如何只读取第一页的哈希值?
import hashlib
print(hashlib.md5(open('c:\temp\HASH\A.tif','rb').read()).hexdigest())
类似以下内容可能会有所帮助。您可以使用支持多页 TIFF 文件的 PIL 库。这样就可以使用seek()
获取第一页数据:
import hashlib
from PIL import Image
from itertools import chain
img = Image.open(r'A.tif')
img.seek(0)
md5 = hashlib.md5()
if isinstance(img.getpixel((0,0)), int):
md5.update(bytes(img.getdata()))
else:
md5.update(bytes(chain.from_iterable(img.getdata())))
print(md5.hexdigest())
对于大多数图像,这将提供一个元组,对于单色/灰度图像,它将提供 returns 值。这些都转换为字节和 运行 到 md5.update()
.