Доброго времени суток, уважаемые. Я работаю над личным проектом и мне необходимо сохранить изображение в переменную. Сейчас приведу свой код и постараюсь как можно точнее всё объяснить.
# я получаю src картинки через selenium, он хранится в переменной image_src
# теперь я получаю байты картинки через requests, если есть способ лучше - you are welcome
img_bytes = bytes(requests.get(image_src).content)
# и теперь я хочу сохранить эти байты как объект картинки, например PIL.Image
# но тут неполадка
# если я использую save_func, всё работает и файл появляется в директории проекта, но
# Show_as_Image не отрабатывает с сообщением not enough image data
def save_func(image_bytes):
# path хранит в себе путь к директории проекта и задан выше
with open(f"{path}\\image.jpg", "wb") as file:
file.write(image)
def Show_as_Image(image_bytes):
# from PIL import Image в начале кода
# browser is webdriver.Chrome если так важно
w, h = get_resolution(browser) # возвращает верное разрешение изображения, нас не интересует как оно работает
image_obj = Image.frombytes("RGB", (w, h), image_bytes) # ошибка на этой строчке:
# ValueError: not enough image data
image_obj.show()
Как мне преобразовать мои байты в объект изображения, если я не хочу делать велосипед вроде:
save_func(image_bytes)
img = Image.open(f"{path}\\image.jpg")
?