Сколько цветов в палитре, если файл изображения 1024 на 512 весит 258 Кбайт
Условие
Несжатый файл растрового изображения размером 1024 на 512 пикселей занимает 258 Кбайт, из которых 2 Кбайт приходится на заголовок файла, не связанный с пикселями. Все пиксели кодируются одинаковым количеством бит. Определите максимальное количество цветов в палитре этого изображения.
Ответ
16 цветов (4 бита на пиксель)
Решение по шагам
Шаг 1. Отделяем данные о пикселях от заголовка
Формула описывает только массив пикселей. Заголовок в неё не входит, поэтому его надо вычесть до всех расчётов:
Именно эти 256 Кбайт распределяются между пикселями.
Если заголовок не вычесть, глубина цвета получится дробной (около 4,03 бита) — а это невозможно и служит сигналом об ошибке.
Шаг 2. Считаем количество пикселей
Оба множителя — степени двойки: , , поэтому
Дальше удобно вести весь счёт в степенях двойки — большие числа не понадобятся.
Осталось ещё 3 шага — откроются после входа:
- Шаг 3. Находим, сколько бит приходится на пиксель
- Шаг 4. Переходим от глубины цвета к размеру палитры
- Шаг 5. Проверяем прямым расчётом объёма
Бесплатно · займёт минуту
Частые ошибки
- ✗
Не вычитают заголовок и делят на пиксели все 258 Кбайт — глубина выходит дробной.
- ✗
Останавливаются на числе 4 и записывают его в ответ: 4 — это биты на пиксель, а не количество цветов.
- ✗
Вместо возведения в степень умножают: цветов.
- ✗
Забывают перевести байты в биты перед делением на количество пикселей.