Python 计算多页 TIFF 文件组中的总页数
Python count total number of pages in group of multi-page TIFF files
我想知道是否可以在 Python 中创建一个程序,该程序能够获取 .tiff 文件中的页数,然后准确输出所有页数。我是 Python 的新手,但想尝试编写可以执行此操作的代码。这可能吗?如果是这样,你能指出我的写作方向吗?从我的谷歌搜索来看,我似乎需要使用 PIL。
我认为这不可能,但是...
Python 是否可以从 .tiff 文件中获取任何元数据信息,然后将所有文件中的所有元数据信息简单地加在一起?
感谢您的帮助!
尝试这样的事情。
from PIL import Image
img = Image.open("picture.tiff")
i = 0
while True:
try:
img.seek(i)
except EOFError:
break
i += 1
print i
是的,有可能。
This answer 提供了一些关于如何使用 Python 成像库查看 multiple-image TIFF 数据的指导。 Nathan 的回答还给出了该方法的具体细节。
理论上可以只查看文件的 header 数据。为此,您需要 research the binary structure of the TIFF format and probably use Python's built-in struct library 解压 header 数据。但这是一些非常高级的东西。
无论使用哪种解决方案,您都需要一个循环遍历 TIFF 文件。 This answer 将使您在正确的路径上找到目录中的文件并循环遍历它们。
更新:
这是完整解决方案的粗略近似值:
import os
from PIL import Image
count = 0
tiffs_path = "c:\wherever"
for filename in os.listdir(tiffs_path):
if filename.endswith(".tiff"):
img = Image.open(filename)
while True:
try:
img.seek(count)
except EOFError:
break
count += 1
print count
这假设您关心的所有 TIFF 文件都在 c:\wherever
。
您可以使用
Blockquote
从 PIL 导入图像
testimage = Image.open(文件名,"r")
打印(testimage.n_frames)
Blockquote
我想知道是否可以在 Python 中创建一个程序,该程序能够获取 .tiff 文件中的页数,然后准确输出所有页数。我是 Python 的新手,但想尝试编写可以执行此操作的代码。这可能吗?如果是这样,你能指出我的写作方向吗?从我的谷歌搜索来看,我似乎需要使用 PIL。
我认为这不可能,但是... Python 是否可以从 .tiff 文件中获取任何元数据信息,然后将所有文件中的所有元数据信息简单地加在一起?
感谢您的帮助!
尝试这样的事情。
from PIL import Image
img = Image.open("picture.tiff")
i = 0
while True:
try:
img.seek(i)
except EOFError:
break
i += 1
print i
是的,有可能。
This answer 提供了一些关于如何使用 Python 成像库查看 multiple-image TIFF 数据的指导。 Nathan 的回答还给出了该方法的具体细节。
理论上可以只查看文件的 header 数据。为此,您需要 research the binary structure of the TIFF format and probably use Python's built-in struct library 解压 header 数据。但这是一些非常高级的东西。
无论使用哪种解决方案,您都需要一个循环遍历 TIFF 文件。 This answer 将使您在正确的路径上找到目录中的文件并循环遍历它们。
更新:
这是完整解决方案的粗略近似值:
import os
from PIL import Image
count = 0
tiffs_path = "c:\wherever"
for filename in os.listdir(tiffs_path):
if filename.endswith(".tiff"):
img = Image.open(filename)
while True:
try:
img.seek(count)
except EOFError:
break
count += 1
print count
这假设您关心的所有 TIFF 文件都在 c:\wherever
。
您可以使用
Blockquote
从 PIL 导入图像 testimage = Image.open(文件名,"r") 打印(testimage.n_frames)
Blockquote