Python Plotly-Da sh: проблема при преобразовании загруженного изображения в base64 в строку или PIL.Image - PullRequest
0 голосов
/ 30 апреля 2020

Я сталкиваюсь с огромной проблемой, когда загружаю изображение (.jpg или .png) через компонент d cc .upload: мне нужно передать изображение в функцию, которая принимает либо строку, либо PIL. Объект изображения. На мой взгляд, было бы лучше преобразовать его в PIL.Image (?). Поэтому мне нужно преобразовать изображение в кодировке base64 в объект PIL.Image, но я не могу заставить это работать. Я могу отобразить загруженное изображение в формате da sh. Пожалуйста, помогите!

Я попробовал следующее: (загруженное изображение называется upload, функция для дальнейшего использования называется function)

  • Использование upload самого объекта: OSError: [Errno 63] File name too long: 'data:image/png;base64,iVB...
  • function(base64.b64decode(upload, 'rb')): assert isinstance(image, str) or isinstance(image, Image.Image)
  • function(Image.open(base64.b64decode(upload, 'rb'))): ValueError: embedded null byte
  • function(Image.open(BytesIO(base64.b64decode(upload, 'rb')))): OSError: cannot identify image file <_io.BytesIO object at 0x146225d10>
  • Использование upload = base64.b64decode(upload + '===') не помогло
  • Использование ImageFile.LOAD_TRUNCATED_IMAGES = True не помогло

Но файл изображения не может быть поврежден, так как я могу четко отобразить его в браузере? И, думаю, извлечение строки (или пути) из нее также не очень хорошая идея, поскольку изображение будет загружено пользователем?

Спасибо!

...