我正在努力从Python的io.BufferedReader
类的实例中正确打开TIFF图像。我使用下面的lib从GCS路径下载了该图像,但似乎无法使用传统工具打开该图像。
# returns the <_io.BufferedReader>
file = beam.io.gcp.gcsio.GcsIO().open("<GCS_PATH>", 'r')
from PIL import Image
img = Image.open(file.read()) <---- Fails with "TypeError: embedded NUL character"
img = Image.open(file.raw) <--- Fails when any operations are performed with "IOError(err)"
除了PIL,我对其他图书馆也开放。
更新
以下内容也失败:
img = Image.open(file)
它失败并显示IOError,指出tempfile.tif: Cannot read TIFF header.
答案 0 :(得分:0)
确保将它们都包装在ContextManager中,以便它们都可以正确关闭。
with beam.io.gcp.gcsio.GcsIO().open(file_path, 'r') as file, Image.open(io.BytesIO(file.read())) as multi_page_tiff:
do_stuff()