KeyError: 'WEBP' при преобразовании изображения в webp с использованием io.base64 - PullRequest
0 голосов
/ 06 августа 2020

Я следую этому руководству: https://medium.com/@ajeetham / image-type-conversion-jpg-png-jpg-webp-png-webp-with- python -7d5df09394c9

Я читаю изображение и открываю его с помощью io.BytesIO (base64.b64decode (image))). Проблема в том, что я могу легко сохранить изображение в PNG , но не могу войти в webp . Ниже мой код:

import io
import base64
import webp
from PIL import Image

image = b'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'
buffer = io.BytesIO()
source_image = Image.open(io.BytesIO(base64.b64decode(image))).convert("RGBA")
source_image.save(buffer,"webp")
#source_image.save("test.webp","webp") #issue as it gives error
#source_image.save(buffer,"png") #ok with this png

Когда я выполняю этот код, он дал мне ошибку:

KeyError: 'WEBP'

Мне действительно не удалось понять, почему его ошибка выдачи как учебник хорошо объяснена.

Извините за плохой англи sh. Я изо всех сил стараюсь все проиллюстрировать.

...