ОГЭ: как считать вес растровой картинки, если задана палитра, а не глубина цвета напрямую?
В одних задачах дают «глубина цвета 24 бита», и тут понятно. А в других пишут «использовано 256 цветов» или «палитра из 16 цветов» — и надо самому найти, сколько бит на пиксель. Как из числа цветов получить биты на пиксель и потом объём всего изображения?
3 ответа
Тут две ступеньки.
-
Из числа цветов N находишь биты на пиксель: i = log₂N (то есть N = 2^i). Для 16 цветов это 4 бита, для 256 — 8 бит, для 2 (ч/б) — 1 бит.
-
Объём = (ширина × высота) × i. Получишь биты, дальше при необходимости /8 в байты и /1024 в Кбайты.
Пример: картинка 200×300, палитра 16 цветов.
- i = log₂16 = 4 бита
- пикселей: 200 × 300 = 60000
- объём: 60000 × 4 = 240000 бит = 30000 байт ≈ 29,3 Кбайт.
Смысл «глубины цвета» и есть «сколько бит нужно, чтобы закодировать один цвет из палитры».
Сначала log₂ от количества цветов = бит на пиксель, потом умножаешь на число пикселей (W×H).
256 цветов = 8 бит = 1 байт на пиксель, удобный случай.