Привет, сегодня я расскажу как двоичный код превращается в картинки.
Скорее всего, для вас не будет секретом, что цифровые фотки состоят из маленьких квадратиков. Они называются "пиксели".
Многие программы для просмотра фотографий пытаются их скрыть и размывают сильно увеличенную картинку в кашу. Вот, например, как это делает айфон:
Айфон всеми силами пытается скрыть то, что фотки состоят из точек, чтобы сохранить магию цифрового изображения. Но мы-то с вами знаем правду. Вот профессиональный инструмент по обработке изображений не поощряет наши иллюзии и готов отобразить хоть один пиксель на весь экран.
А как картинку закодировать двумя цифрами-то?
После нашего небольшого расследования мы приблизились к ответу очень близко. Изображение состоит из точек, каждую точку нам нужно закодировать одним из цветов. Приведем нереалистично примитивный пример.
Представим, что нам необходимо закодировать микроскопическое изображение 2х2 пикселя, точки которого могут быть либо абсолютно черными, либо абсолютно белыми.
Это очень удобный пример, который нас еще ближе направит к полному пониманию вопросика. У нас есть всего два цвета, и мы можем закодировать их одним битиком. Например, черный цвет будет ноликом, а белый — единичкой.
Такое примитивное изображение можно закодировать всего четырьмя битами.
Но наши бытовые картинки состоят из гораздо большего количества пикселей, а отображаемых оттенков невероятно много. Как быть с этим?
Да, современные картинки имеют разрешение далеко не 2 на 2 пикселя, а, например, 2560 х 1440. А цветов и оттенков, как правило, используется более 16 миллионов. Предлагаю плавно перейти к таким показателям через изображение 3 х 3, использующим 4 различных цвета.
Чтобы закодировать двоичным кодом такую картинку, нам понадобится 2 бита на одну точку. Например, черный цвет — 00, синий цвет — 01, красный цвет — 10, белый цвет — 11.
Давайте посмотрим на варианты записи таких картинок.
Одним битом мы могли закодировать 2 цвета, двумя —4. 16 миллионов цветов мы можем закодировать 24 битами. Подробнее об этом я писал вот здесь.
То есть забор из двадцати четырех единиц и нулей закодирует цвет всего-лишь одной точки. А таких у нас будет пара миллионов в одной картинке.
Именно поэтому фотка на твой телефон весит несколько мегабайт несмотря на то, что она очень сильно сжимается.
Спасибо, что прочли! Если вам понравилась бытовая информатика, то знайте, что я веду подготовку к ЕГЭ по информатике и ютюб-канал «Пацанская информатика», там тоже хорошо.