Дано растровий малюнок.
A) Закодувати и декодувати малюнок, якщо зображення чорно-біле (1 клітинка - 1 точка).
Б) Визначити інформаційний об'єм цього малюнка в бітах і байтах, якщо він буде представлений в 16-кольоровому зображенні?
Ответы
Ответ:
from PIL import Image
# Создаем пустое черно-белое изображение размером 100x100 пикселей
width, height = 100, 100
bw_image = Image.new("L", (width, height), 0) # Создаем черно-белое' изображение
# Сохраняем пустое черно-белое изображение
bw_image.save("пустое_черно_белое.png")
# Декодируем пустое черно-белое изображение в 16-цветное
decoded_image = bw_image.convert("P", palette=Image.ADAPTIVE, colors=16)
# Сохраняем декодированное 16-цветное изображение
decoded_image.save("декодированное_16_цветное.png")
# Определяем информационный объем
colors = 16 # 16-цветная палитра
bit_depth = colors.bit_length()
byte_depth = (bit_depth * width * height) / 8
print(f"Информационный объем в битах: {bit_depth}")
print(f"Информационный объем в байтах: {byte_depth}")
Информационный объем в битах: 5
Информационный объем в байтах: 6250.0
[Program finished]