Я пытаюсь получить размер изображения, отправляемого через 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)}')