Как преобразовать в формат байтов для изображений PIL, который похож на обычный формат байтов - PullRequest
0 голосов
/ 19 сентября 2018

Извините, что не смог четко объяснить в теме.Я использовал read (), чтобы прочитать все изображение в форме байтов, а также я использовал tobytes () PIL, чтобы прочитать то же изображение.Но для меня изображение байтов выглядит иначе.Не могли бы вы посоветовать, как генерировать одни и те же байты с помощью read () с помощью утилиты пакета PIL?От исходного кодирования до utf-8

Пример кода:

path3 = r'path'
with io.open(path3, 'rb') as image_file:
    content1 = image_file.read()
b'\xff\xd8\x ...

Использование PIL:

with io.open(path3, 'rb') as image_file:
    content1 = Image.open(image_file).tobytes()
b'\xbf\x91\xc0\xbf\x91\xc0\xbe\x90\xbf\xbe'

В моем случае:

from pdf2image import convert_from_bytes
images = convert_from_bytes(open('pp.pdf', 'rb').read())
b=images[0].read() # since this returns list format
AttributeError: 'PpmImageFile' object has no attribute 'read'

Можно ли иметь такой же формат байтов, как read ()?

1 Ответ

0 голосов
/ 19 сентября 2018

PIL делает больше, чем просто читает байты файла изображения.Он распаковывает его из JPG, PNG или любого другого формата, который вы ему предоставляете.Это tobytes функция возвращает все значения пикселей.

В первом фрагменте, который вы просто читаете в байтах сжатого файла изображения.Они всегда будут разными, если вы не используете несжатый формат файла, такой как BMP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...