Python Pillow: загрузить изображение с данными - PullRequest
1 голос
/ 18 мая 2019

Мне нужно знать, как загрузить изображение с его данными
Я использую base64 модуль для чтения данных

print(base64.b64encode(open('FILENAME','rb').read()))

, который дает мне данные изображения
Мне нужно что-то вроде

img=Load(imgdata)  #instead of Image.open()

1 Ответ

0 голосов
/ 18 мая 2019

Вот как base64 кодирует JPEG / PNG или любое другое представление изображения:

import base64

# Base64 encode a PNG/JPEG image
b64 = base64.b64encode(open('image.png','rb').read())

А вот как декодировать и вернуть ваше изображение:

import io
from PIL import Image

# Base64 decode and convert from PNG/JPEG to PIL Image
im = Image.open(io.BytesIO(base64.b64decode(b64))) 

В качестве альтернативы, если вы используете OpenCV , вы можете получить массив Numpy, который OpenCV использует для обработки изображений, в этом случае вы можете сделать:

import cv2

NumpyIM = cv2.imdecode(np.asarray(bytearray(base64.b64decode(b64))),0) 

Обратите внимание, что при этом синий и зеленый каналы будут взаимозаменяемы по отношению к PIL / Pillow, то есть BGR против RGB.


Ключевые слова : OpenCV, PIL, Pillow, Python, обработка изображений, кодировка base64, кодирование, декодирование, декодирование, imencode, imdecode, BytesIO, io.BytesIO.

...