Чтение / открытие изображения из экземпляра класса Python io.BufferedReader - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь правильно открыть изображение TIFF из экземпляра класса io.BufferedReader в Python.Я загружаю изображение из пути 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)

Сбой при ошибке ввода-вывода с указанием tempfile.tif: Cannot read TIFF header.

1 Ответ

0 голосов
/ 13 апреля 2019

Убедитесь, что вы завернули оба в 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()
...