Размер изображения в байтах без сохранения на диск Python - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь получить размер изображения, отправляемого через http-запрос, закодированный как base64. В файловой системе изображение является изображением .png и составляет около 1 034 023 байта, однако, когда я получаю изображение в виде base64 и получаю его размер в байтах, то есть его меньше, т.е. 840734.

Это правильно, и это из-за сжатие .png отличается от изображения, загруженного в память? И если я хочу, чтобы он имел размер изображения, отображаемого в файловой системе, придется ли мне повторно сохранять это изображение на диск при его получении?

, чтобы получить размер изображения в байтах. У меня есть следующее функции (обе возвращают одно и то же значение). Я использую Python3.

def image_size(imageb64):
    character_count = len(imageb64)
    padding_count = imageb64[character_count:None].count('=')
    count = (3 * (character_count / 4)) - padding_count
    print(f'Image size count: {count}')

def image_to_size_in_bytes(numpy_img):
    img = Image.fromarray(numpy_img)
    buffered = BytesIO()
    img.save(buffered, format='PNG')
    contents = buffered.getvalue()
    print(f'IMAGE SIZE: {len(contents)}')
...