Сколько информации в 1 пикселе?
Если изображение состоит из одного пикселя, сжимать тут особенно нечего. Несжатых данных тут будет содержаться от одного бита до четырёх байт – в зависимости от интерпретации: черно-белый (1 бит), оттенки серого (1 байт), оттенки серого с альфой (2 байта), RGB (3 байта), RGBA (4 байта).
Сколько информации в одном пикселе?
Сложно однозначно ответить на вопрос сколько в 1 пикселе байт, ведь размер пикселя в байтах или битах зависит от того, сколько цветов, какая кодировка используется. Краткий ответ: 1 пиксель = 3 байта (при цветовой схеме True-color).
Как выглядит один пиксель?
Пиксель представляет собой неделимый объект прямоугольной или круглой формы, характеризуемый определённым цветом (применительно к плазменным панелям, газоплазменная ячейка может быть восьмиугольной). Растровое компьютерное изображение состоит из пикселей, расположенных по строкам и столбцам.
Какой размер пикселя?
Разрешением экрана монитора обычно называют размеры получаемого на экране изображения в пикселях: 800×600, 1024×768, 1280×1024, подразумевая разрешение относительно физических размеров экрана, а не эталонной единицы измерения длины, такой как 1 дюйм.
Сколько пикселей в 8 битах?
В общем, число возможных вариантов будет являться числу два, возведённому в степени количества бит. Таким образом , «8-бит» = 28 = 256 возможных целочисленных значений. В Photoshop это представлено в виде целых чисел 0-255 (внутренне, это двоичный код 00000000-11111111 для компьютера).
Что меньше бит байт или пиксель?
1 пиксель = 3 байта = 24 бита.
Сколько байт весит 1 пиксель?
в монохромном режиме пиксел — это один бит (1/8 байта) в 16-цветном режиме пиксел — это 4 бита (1/2 байта) в 256-цветном пиксел — это 1 байт
Сколько субпикселей в пикселе?
Каждый пиксель состоит из трех цветных субпикселей: красного, зеленого и синего. Комбинируя эти три базовых цвета и меняя их яркость относительно друг друга, можно получить любой цвет пикселя. Таким способом можно получить даже белый цвет.
Сколько точек в одном пикселе?
Пиксель – это одна точка, из которых состоит изображение. Также пикселем называется ячейка изображения на мониторе или жк-телевизоре. Рассмотрите монитор вблизи и вы увидите едва заметную сеточку, одна ячейка этой сетки – и есть пиксель.
Что такое один пиксель?
Пиксель (англ. pixel) px — это единица измерения длины и расстояния. . Координата Х — горизонтальный адрес любого пикселя или адресуемой точки экрана компьютерного дисплея. 1 пиксель = 263.5872297786 микрометров.
Что Такоепиксель?
Пиксель (ударение на «и») это маленькая точка на экране, которая может принимать тот или иной цвет. Любая компьютерная фотка состоит из пикселей, примерно так же, как материя — из молекул.
Что такое растр Что такое пиксель?
Пиксель-это единица измерения любого монитора (экрана). растр-это сетка,решетка. В полиграфии — техническое устройство,прозрачная пленка с нанесенными на нее тонкими линиями в прямую или косую клетку. . Люминофор под воздействием электронов начинает светиться, формируя изображение на экране монитора.
Чем меньше размер пикселя тем лучше?
е. пикселя. . Поэтому чем крупнее пиксель, тем, соответственно, больше его площадь, а, значит, и количество собранного света. Таким образом, получаем, что чем больше физический размер пикселя, тем выше светочувствительность матрицы и лучше соотношение сигнал/шум.
Какое разрешение в 2к?
Разрешение 2K — общий термин для дисплеев или контента, имеющих горизонтальное разрешение приблизительно около 2000 пикселей, в том числе и FullHD. Digital Cinema Initiatives (DCI) определяет стандарт разрешения 2K как 2048 x 1080.
В чем измеряется размер пикселя?
Единицей измерения этой величины является ppi (pixels per inch). Ppi — это число пикселей на дюйм (1 дюйм=2.54 см).
Сколько байт в 1 пикселе
![]()

Сломанная картинка



- В монохромном (2 1 ): 1 пиксель = 1/8 байт (1 бит)
- В 16-цветном (2 4 ): 1 пиксель = 0,5 байт (4 бит)
- В 256-цветном (2 8 ): 1 пиксель = 1 байт (8 бит)
- True-color (2 24 ): 1 пиксел = 3 байта (24 бита)
- True-color + Альфа канал (2 24 + 8-битный канал): 1 пиксел = 4 байта (32 бита)
- Нужно умножить высоту на ширину, получив тем самым общее количество пикселей в изображении. В статье «Как узнать размер изображения в пикселях» описано, как можно посмотреть размер картинки;
- Затем необходимо узнать вес картинки. Сделать это можно кликнув правой кнопкой мыши по картинке, вызвав тем самым контекстное меню, в котором следует выбрать пункт «Свойства». Там и будет указан вес в байтах.

- Осталось лишь поделить вес в байтах на размер картинки в пикселях. Таким образом получится вес 1 пикселя в байтах.
Автоматически определить, сколько процентов занимает тот или иной элемент на экране?
Автоматически определить, сколько процентов занимает тот или иной элемент на экране? У меня есть.
- один символ в текстовом — это два байта — сам символ и его атрибут;
- сколько занимает пиксел в графическом режиме будет зависеть от поддерживаемых цветов:
- в монохромном режиме пиксел — это один бит (1/8 байта)
- в 16-цветном режиме пиксел — это 4 бита (1/2 байта)
- в 256-цветном пиксел — это 1 байт
- для тру-колора пиксел — это 24 бита (3 байта)
Оцените, сколько места на компакт-диске занимает видеоинформация и сколько звуковая дорожка
На компакт-диске записана видеозапись допроса обвиняемого в формате MPEG4 — сжатый формат. Размер.
Как закрасить ровно один пиксель?
как закрасить ровно один пиксель .. я сначала хотел как бы прорисовать линиию с одним началом и тем.Один пиксель вместо тысячи слов

Пару месяцев назад, отдыхая от реализации новых возможностей вроде q_auto и g_auto, я прикалывался в нашем командном чате по поводу того, как различные форматы хранения изображений будут сжимать однопиксельную картинку. В ответ Orly, редактор блога, попросила меня написать пост об этом. Я сказал: «Конечно, почему бы и нет. Но это будет очень короткий пост. Ведь что можно рассказать про один пиксель».
Похоже, я был сильно неправ.
Что можно сделать с одним пикселем?
В ранние годы веба однопиксельные картинки часто использовались как костыли для вещей, которые сейчас делаются через CSS. Создание отступов, линий, прямоугольников, полупрозрачных фонов – много чего можно сделать, просто масштабируя пиксель до нужных размеров. Ещё одно использование пикселей, дожившее до наших дней – маячки, средства для отслеживания и аналитики.
В отзывчивом веб-дизайне однопиксельные картинки используются как временные заглушки в ожидании загрузки страницы. Большинство браузеров не поддерживают HTTP Client Hints, поэтому некоторые варианты с отзывчивыми изображениями ждут полной загрузки страницы, чтобы подсчитать актуальный размер картинок, а затем заменяют однопиксельные картинки нужными изображениями при помощи JavaScript.
Сломанная картинкаЕсть и ещё одно применение однопиксельных картинок: их можно использовать в качестве картинок «по умолчанию». Если нужное изображение по каким-то причинам невозможно найти, в некоторых случаях лучше показать один прозрачный пиксель, чем выдавать «404 — Not Found», которая будет видна в браузерах как «сломанная картинка». Нужное изображение вы в любом случае не увидите, но профессиональнее будет не акцентировать на этом внимание, выдавая иконку «сломанной картинки».
Хорошо, значит, однопиксельные картинки бывают полезными. И как же наилучшим образом закодировать изображение размера 1х1?
Очевидно, что для форматов сжатия изображений это пограничный случай. Если изображение состоит из одного пикселя, сжимать тут особенно нечего. Несжатых данных тут будет содержаться от одного бита до четырёх байт – в зависимости от интерпретации: черно-белый (1 бит), оттенки серого (1 байт), оттенки серого с альфой (2 байта), RGB (3 байта), RGBA (4 байта).
Но нельзя закодировать только лишь данные – в любом формате изображений нужно задать интерпретацию данных. По меньшей мере, нужно знать высоту и ширину изображения и количество бит на пиксель.
Заголовки
Обычно для кодирования высоты и ширины используется четыре байта: два на число (если бы это был один байт, то максимальная размерность картинки была бы 255×255). Допустим, нужен ещё байт для задания типа цветопередачи (оттенки серого, RGB или RGBA). В таком минималистичном формате однопиксельная картинка занимала бы не менее 6 байт (для белого пикселя), а максимум – 9 байт (для полупрозрачного пикселя произвольного цвета).
Но в заголовках реальных форматов обычно содержится гораздо больше информации. Первые несколько байт любого формата содержат уникальный идентификатор нужный лишь для того, чтобы сообщить, что «Эй! Я — файл вот конкретно такого формата!». Эта последовательность байт также известна, как «волшебное число». К примеру, GIF всегда начинается с GIF87a или GIF89a, в зависимости от версии спецификаций, PNG – с 8-байтной последовательности, включающей PNG, у JPEG есть заголовок, содержащий строку JFIF или Exif, и т.д.
В заголовках может содержаться мета-информация. Это специфичные для данного формата данные, необходимые для раскодирования, определяющие, какой из подвидов формата используется. Некоторые из мета-данных не обязательно нужны для раскодирования, но тем не менее, используются для определения того, как показывать их на экране: цветовой профиль, ориентация, гамма, количество точек на пиксель. Это могут также быть производльные данные – комментарии, временные отметки, отметки об авторских правах, GPS-координаты. Это могут быть необязательные или обязательные данные, в зависимости от спецификации. Конечно, эти данные увеличивают объём файла. Давайте поэтому остановимся на минимальных файлах, откуда удалена вся необязательная информация – или мы будем тратить драгоценные байты на ерунду.
Кроме заголовков, в файлах может встречаться и другая дополнительная информация – маркеры, контрольные суммы (используемые для проверки правильности передачи или результата работы других процессов, которые могут испортить файл). Бывает, что требуется включить в файл отступы, чтобы выровнять все данные.
Однопиксельные, минимально возможные картинки, показывают, сколько «лишней» информации содержится в формате файла. Смотрим.
Вот шестнадцатеричный дамп 67-байтного PNG-файла с одним белым пикселем.
Файл состоит из 8-байтного «волшебного числа» PNG, за которым следует отрезок заголовка IHDR из 13 байт, отрезок с данными об изображении IDAT с 10 байтами «сжатых» данных, и отметка об окончании IEND. Каждый отрезок данных начинается с 4-байтного отрезка с длиной и 4-байтного отрезка-идентификатора, и заканчивается контрольной суммой из 4 байт. Эти три отрезка данных обязательны, так что они в любом случае отъедают 36 байт у 67-байтного файла.
Чёрный пиксель тоже занимает 67 байт, прозрачный – 68, а произвольный цвет RGBA займёт от 67 до 70 байт.
Заголовок у JPEG длиннее. Минимальный однопиксельный JPEG занимает 141 байт, и он не бывает прозрачным, т.к. JPEG не поддерживает альфа-канал.
В смысле заголовков GIF самый компактный из трёх универсальных форматов. Белый пиксель можно закодировать в GIF 35 байтами:
а прозрачный – 43:
Для всех перечисленных форматов можно изготовить и файлы поменьше, которые будут показываться в большинстве браузеров, но они будут сделаны с нарушением спецификаций, так что декодер изображений может в любой момент пожаловаться на то, что файл битый (и будет прав), и показать иконку «сломанной картинки» – а мы именно её и пытаемся избежать.
Так какой же наилучший формат однопиксельной картинки для веба? Есть варианты. Если пиксель непрозрачный, то GIF. Если прозрачный – тоже GIF. Если полупрозрачный, то PNG, поскольку у GIF прозрачность задаётся только как «да» или «нет».
Всё это мало что значит. Любой из этих файлов уместится в один сетевой пакет, поэтому разницы в скорости не будет, а разница для хранилища вообще пренебрежимо мала. Но тем не менее, с этим забавно разбираться – по крайней мере, любителям форматов.
Что же насчёт более экзотических форматов?
Используя формат WebP, выбирайте его версию без потерь качества. Однопиксельная картинка без потери качества в формате WebP занимает от 34 до 38 байт. С потерей – от 44 до 104 байт, в зависимости от наличия альфа-канала. К примеру, вот полностью прозрачный пиксель в 34-байтном WebP без потери качества:
а вот тот же пиксель с потерей качества (по умолчанию) WebP, занимающий 82 байта:
Разница в том, что WebP с потерей качества и прозрачностью хранится как две картинки в одном файле-контейнере: одна картинка с потерей качества, хранящая данные для RGB, и другая, без потери, с данными альфа-канала.
У формата BPG также есть режимы с потерей из без потери качества, и для него действует обратная закономерность. BPG с потерей хранит 1 пиксель в 31 байте – наименьший показатель из всех:
BPG без потерь качества занимает 59 байт. Прозрачный пиксель займёт 57 байт в BPG
с потерями и 113 байт в BPG без потерь. Интересно, что в случае с одним белым пикселем BPG выиграет у WebP (31 байт против 38), а с одним прозрачным пикселем WebP выигрывает у BPG (34 байта против 57).А ещё есть FLIF. Я, конечно, не могу забыть о нём, являясь главным автором бесплатного формата изображений без потери качества (Free Lossless Image Format). Вот 15-байтный FLIF для одного белого пикселя:
А вот 14-байтный для чёрного:
Чёрный пиксель получился меньше, потому что ноль сжимается лучше, чем 255. Заголовок простой: первые 4 байта всегда «FLIF», следующий – человеко-читаемое обозначение цвета и интерлейсинга. В нашем случае это «1», что значит, один канал для цвета (оттенки серого). Следующий байт – глубина цвета. «1» значит один байт на канал. Следующие четыре байта – размерность картинки, 0x0001 на 0x0001. Следующие 4 или 5 – сжатые данные.
Полностью прозрачный пиксель тоже занимает 14 байт в FLIF:
В этом случае у нас 4 цветовых канала (RGBA) вместо одного. Можно было бы ожидать, что раздел с данными будет длиннее (всё-таки каналов в четыре раза больше), но это не так: поскольку значение альфа равно нулю (пиксель прозрачный), значения RGB считаются неважными, и их просто не включают в файл.
Для произвольного цвета RGBA файл FLIF может занять до 20 байт.
Хорошо, значит FLIF лидер в категории «один пиксель» в соревновании на кодирование изображений. Если бы ещё это было какое-то важное соревнование 🙂
Но тем не менее, FLIF не будет лидером. Помните упомянутый мною минималистичный формат? Тот, который закодирует один пиксель в размер от 6 до 9 байт? Такого формата нет, поэтому он в счёт не идёт. Но есть существующий формат, который довольно близко подходит к этому.
Он называется Portable Bitmap format (PBM), и представляет собою несжатый формат изображений из 1980-х. Вот как можно было бы закодировать один белый пиксель в PBM всего 8-ю байтами:
Да тут и шестнадцатиричный дамп не нужен, этот формат человеко-читаемый. Его можно открыть в текстовом редакторе.
Первая линия (P1) обозначает, что картинка двухцветная. Не оттенки серого, а только два цвета – чёрный (цифра 1) и белый (0). Вторая линия – размерность картинки. А затем идёт разделённый пробелами список чисел, одно число на пиксель. В нашем случае 0.
Если вам нужно что-то другое, кроме чёрного и белого, можно использовать формат PGM для представления одного пикселя любого цвета всего 12-ю байтами, или PPM размером 14 байт. Это всегда меньше, чем соответствующий FLIF (или любой другой формат со сжатием).
В традиционном семействе форматов PNM (PBM, PGM и PPM) не поддерживается прозрачность. Существует дополнение PNM под названием Portable Arbitrary Map (PAM), где есть прозрачность. Но для нас он не подходит из-за многословности. Самый маленький из файлов PAM, представляющий прозрачный пиксель, такой:
На последней строке идёт четыре нулевых байта. Всего получается 67 байт. Можно было бы использовать оттенки серого с альфа-каналом вместо RGBA, это бы сберегло два байта в секции данных. Но получится файл из 71 байта, поскольку нужно будет сменить TUPLTYPE с RGB_ALPHA на GRAYSCALE_ALPHA. Кроме того, программе обработки может не понравится MAXVAL 1, и придётся поменять его на MAXVAL 255 (ещё два байта).
В общем, для однопиксельных изображений без прозрачности, самым маленьким будет PNM (от 8 до 14 байт для PNM против от 14 до 18 для FLIF), а с прозрачностью самым мелким будет FLIF (от 14 до 20 байт для FLIF против от 67 до 69 байт для PAM).
Вот сравнительная табличка с оптимальными размерами файлов для разных однопиксельных картинок:

Может показаться странным, что формат без сжатия выигрывает у форматов со сжатием. Но если подумать, однопиксельные картинки – это наихудший вариант для сжатия изображений. Весь файл состоит из заголовка и дополнительной информации, и в нём очень мало данных. А очень мало данных нельзя сжать, поскольку сжатие основано на предсказуемости, и как можно предсказать единственный пиксель?
Сколько байт в 1 пикселе
В этом документе приведено элементарное введение в принципы хранения картинок (растровые изображения, bitmap) и их отображения, как это используется в компьютерной графике (перевод [1]).
Растр (bitmap, дословный перевод этого термина «поле бит», или «карта бит») определен как равномерный, прямоугольный набор ячеек, которые называются пикселами (pixel, переводится как «точка»). Обычно каждый пиксел хранит информацию о цвете точки, но понятие «цвет» трактуется более широко — например, цвет может быть монохромным (monochrome, т. е. только 2 цвета — черный и белый, 0 и 1), или с градациями серого (grayscale). В сущности, чтобы полностью сохранить данные картинки, нужно знать только количество точек (оно зависит от размера сторон прямоугольного поля бит N и M) и информацию содержимому каждого пикселя (его глубину цвета, colour depth). Именно в таком виде картинки хранятся в памяти компьютера, когда они выводятся на устройство отображения (экран), однако к этим двум фундаментальным параметрам также могут добавляться другие дополнительные данные.
Обратите внимание, что карта бит bitmap всегда ориентирована горизонтально и вертикально. Пикселы считают маленькими квадратиками, хотя на практике они могут иметь другое реальное физическое соотношение сторон (aspect ratio).
Чаще всего bitmap-ы используются для представления картинок в компьютерах. Например, картинка, показанная ниже, имеет 397 пикселя по горизонтали 294 пикселя по вертикали, и каждый пиксель содержит значение уровня серого, которое может быть для каждой точки 256 различных оттенков.
Что такое глубина цвета (Colour depth). Каждый пиксел растра bitmap содержит определенную информацию, обычно интерпретируемую как цвет. Смысл и формат содержимого этой информации всегда одинаков для каждой отдельной точки изображения bitmap. Количество информации для каждой точки должно определяться требованиями приложения, однако имеется несколько стандартных, общепринятых форматов данных, содержащих описание каждой точки растра.
Рассмотрим эти самые популярные форматы для передачи растровой картинки.
Формат 1 bit (black and white). Это самый компактный из всех возможных вариантов представления графической информации для каждого пикселя. Результирующая картинка получается монохромной, или черно-белой (точка может иметь либо черный цвет, либо белый, других вариантов нет). Пикселы, бит которых равен лог. 0, считаются черными, и пикселы, бит которых равен лог. 1, считаются белыми. Обратите внимание, что хотя есть только 2 возможных состояния для каждой точки, на практике на этапе отображения обычно есть возможность привязки к этим двум состояниям двух цветов, т. е. 0 соответствует одному цвету, и 1 другому цвету.
8 бит серого (8 bit grayscale). В этом случае каждый пиксел получает в соответствие 1 байт (8 бит) места в памяти, благодаря чему можно закодировать 2 8 = 256 различных состояний точки. Если эти состояния отображены на палитру уровней серого, то получится черно-белая картинка с 256 градациями яркости (greyscale image). Принято, что 0 обычно соответствует максимально черному цвету, и 255 максимально белому. Остальные уровни серого будут линейно по яркости соответствовать промежуточным уровням кодирования, т. е., к примеру, уровень 127 будет соответствовать примерно средней яркости, 50% по яркости от уровня максимума белого.
В любом частном приложении диапазон уровней серого может быть привязан к произвольным уровням яркости или даже цвета, т. е. уровни 0-255 могут быть преобразованы некоторыми программами в уровни 0-1, но большинство программ преобразуют уровни 0-255 к уровням 0-65535 (в качестве примера см. спецификацию системы цветового кодирования Apple).
24 bit RGB. Это следующий шаг от кодирования 8 bit grey, теперь по 8 бит выделено каждому из компонентов цвета red (красный), green (зеленый) и blue (синий). В каждой компоненте уровень 0 соответствует отсутствию этого цвета, и 255 соответствует полному насыщению цвета. Поскольку каждый компонент дает 256 различных состояний, то всего можно закодировать 2 24 = 2 8 * 2 8 * 2 8 = 256 * 256 * 256 = 16777216 возможных цветов.
Идея цветового пространства RGB является фундаментальной концепцией компьютерной графии. В пространстве RGB любой цвет представлен точкой внутри куба с перпендикулярными осями r,g,b.
Обратите внимание, что что уровни серого формируют прямую линию от черного до белого, составляя диагональ куба r = g = b.
8 bit indexed colour. Индексированный цвет — более экономичный способ сохранять цветные растровые изображения без использования 3 байт на точку. Как и для формата градаций серого 8 бит, на точку здесь приходится 1 байт, но только теперь значение этого байта указывает на значение цвета в таблице RGB (см. рисунок ниже). Такая таблица называется палитрой. Поскольку значение байта указывает на цвет в палитре как индекс в таблице, то такой формат называют еще формат с индексированными цветами.
Есть некоторое количество интересных атрибутов в такой системе с индексированными цветами. Если в картинке меньше 256 цветов, то она будет иметь такое же качество, как и 24 bit bitmap, однако будет занимать место в 3 раза меньше. Интересующие цвета и эффекты анимации могут быть достигнуты простым изменением палитры, это немедленно повлияет на внешний вид картинки.
Обычно для уменьшения большой картинки 24 bit bitmap применяют её преобразование в формат с индексированными цветами и оптимизированной палитрой. Оптимизированная палитра позволяет лучше всего воспроизвести цвета, которые присутствуют в оригинальном растре bitmap.
4 bit indexed colour. Принцип здесь тот же самый, что и в формате с индексированным цветом 8 бит, то только теперь точка кодируется не 8 битами, а 4-мя, т. е. для индекса в таблице используется только половина байта. Это позволяет поддерживать таблицу из 16 цветов.
32 bit RGB. Здесь принцип хранения картинки тот же самый, что и в цветном формате 24 бита, но еще добавляется 1 байт канала альфа (alpha channel). Этот канал может быть использован для маскирования областей картинки, или для представления прозрачности.
16 bit RGB. Здесь на каждый цвет приходится по 5 бит, и 1 бит остается на канал альфа (см. рисунок ниже).
[Что такое разрешение картинки (Resolution)]
Разрешение это атрибут картинки, который нужен для визуального отображения картинки или вывода на печать, поскольку у самих точек нет никакой информации о их физическом размере. Разрешение как раз дает такую привязку к физическим размерам, и обычно указывается в количестве пикселов на дюйм (dots per inch, или сокращенно DPI). На устройствах с прямоугольными пикселами разрешение может быть указано двумя числами, с указанием горизонтального и вертикального разрешения.
Концепция разрешения не зависит от информационного содержания растра bitmap, и становится важной только при переносе растра на физические объекты (экран монитора или лист бумаги принтера). Это особенно важно, когда количество точек по горизонтали и вертикали исходного растра не соответствует количеству точек конечного устройства вывода. Качество печати будет зависеть от установленного разрешения картинки. Поскольку разрешение определяет физический размер точки, то разрешение может также использоваться для изменения размера картинки при выводе изображения.
В качестве примера рассмотрим одну картинку bitmap размером в 200 точек по горизонтали и 100 по вертикали. Если этот растр будет напечатан с разрешением 100DPI, то он получит размер 2 дюйма по горизонтали и 1 дюйм по вертикали. Но если ту же самую картинку распечатать с разрешением 200 DPI, то она будет размером всего лишь 1 дюйм по горизонтали и полдюйма по вертикали.
Всякий раз, когда растр bitmap отображается на мониторе компьютера, необходимо учитывать разрешение картинки. Многие мониторы могут иметь разрешение от 60DPI (низкое качество) до 120DPI (высокое качество) и более. Точно так же, как и при выводе на печать, чем выше разрешение картинки, тем она будет выглядеть меньше по размеру на экране монитора — из-за того, что размер каждого пиксела будет меньше.
На следующем примере можно увидеть две картинки с одинаковым содержанием растра bitmap, но с разным разрешением (с разным размером точки). Картинка меньшего размера имеет разрешение 80DPI, и большая картинка имеет разрешение 30DPI. В увеличенной версии картинки отдельные пиксели намного заметнее.
Это еще не все, что касается отображения картинки на разных устройствах вывода, поскольку у разных устройств есть разные возможности по отображению цветовой гаммы, или глубины цвета.
[Преобразование глубины цвета]
Часто нужно отобразить растр bitmap с одной глубиной цвета на устройстве, которое имеет другие возможности по параметру глубины цвета. Конечно, если у конечного устройства можно вывести больше цветов, чем есть на картинке bitmap, то растр может быть отображен наилучшим образом. В обратной ситуации, когда у устройства назначения глубина цвета отличается в худшую сторону (количество отображаемых цветов меньше, чем количество цветов растра), то картинку следует преобразовать во что-то, что будет лучше выглядеть на экране монитора.
В качестве примера рассмотрим отображение картинок с градациями серого на монохромных (где есть только черный и белый цвет точки) устройствах. Это обычная ситуация для устройств на микроконтроллерах с экраном ЖКИ. Оттенки серого можно передать путем изменения количества черных и белых точек в зависимости от уровня серого. Особенно такой способ передачи градаций хорошо подходит для случая, когда у устройства вывода разрешение превышает разрешение картинки — это позволяет создать апроксимацию градаций серого каждой точки растра с помощью разного количества точек конечного устройства.
Предположим, растр bitmap 75DPI нужно отобразить на черно-белом лазерном принтере с разрешающей способностью 300DPI. В таком случае каждую точку картинки можно представить матрицей 4×4 черных и белых точек принтера, и таким способом передать яркость точки картинки.
Есть несколько разных техник для получения такого соответствия матриц точек яркости точки оригинальной картинки. Одна из таких техник называется дизеринг (dithering, дословный перевод «размывание»). Даже для дизеринга есть несколько возможных алгоритмов для получения матриц пикселей для разных уровней яркости. На картинке ниже показана диаграмма смены уровней яркости и (вертикальная полоса слева) и два варианта черно-белого дизеринга — скорректированного увеличения по образцу (greatly enlarged using pattern) и размытие с диффузией (diffusion dithering).
Как уже упоминалось, есть разные техники для отображения растра большой глубины цвета с малым разрешением на устройствах с малой глубиной цвета и большим разрешением. Еще одна такая техника в полиграфии называется screening. Мы не будем подробно рассматривать здесь эту технику, скажем только, что уровни серого здесь представлены объектами разного размера, чем серее точка, тем больше размер объекта (площадь объекта на точке пропорциональна уровню серого точки). Объекты выровнены по равномерной матрице под некоторым углом к горизонтали. Наиболее часто используются объекты в виде точек, черточек и прямоугольников. Ниже показан пример техники скрининга для представления градаций серого.
Мы рассмотрели преобразование глубины цвета только для картинок с градациями серого (greyscale). Преобразование цветных картинок с высокой глубиной цвета в малую использует тот же самый принцип, отличие только в том, что процедура конверсии накладывается на основные компоненты цвета, на каждый по отдельности. Например, для RGB делается дизеринг отдельно по каждому каналу R, G, B.
Предположим, что у нас есть 8-битная картинка с градациями серого; какой самый простой способ сохранить её как двухцветную (монохромную, 1 бит на точку) [2]?
1-битные изображения все еще используются в коммерческой печати. Обычный файл формата CMYK или картинка с градациями серого перед созданием плат офсетной печати преобразуются в 1-битное изображение. Картинка, печатаемая на лазерном принтере, также считается в какой-то момент растровым 1-битным изображением. Изображения на футболках или шевронах часто печатаются как 1-битные (вспомните классическое изображение профиля Эрнесто Че Гевары).
Не существует простого метода получить монохромный растр из многоцветного. Всегда перед преобразованием необходимо сделать некоторый выбор. Рассмотрим несколько примеров.

Линейное преобразование. В этом случае выбирается некий пороговый уровень яркости, выше которой точка считается белой, и ниже этой яркости точка считается черной. Ниже показан пример такого преобразования при выбранном пороге яркости 50%.

При таком преобразовании можно регулировать порог оценки яркости:

Дизеринг. Этот вид преобразования используется в некоторых монохромных цифровых принтерах для передачи оттенков серого.

Разновидностью дизеринга является применение стандартных шаблонов точек для передачи уровней яркости (postscript pattern). Картинки после такое преобразования могут в некоторых случаях лучше выглядеть при отображении на цифровых мониторах.

[Хранение растра bitmap]
Наиболее очевидный способ сохранить растр bitmap — просто представить информацию в виде списка точек, байт за байтом, строка за строкой. Файлы, где графическая информация сохранена таким способом, часто называют RAW-файлами (raw переводится как «сырые данные»). Размер места хранения для такого файла можно вычислить по количеству точек в картинке (размерам растра bitmap N x M) и глубине цвета каждой точке в битах (B). Вот формула для вычисления размера файла:
N * M * B
размер файла (в килобайтах) = ————————— — —
8 * 1024Здесь N и M это количество точек (пикселов) картинки по горизонтали и вертикали, и B это количество бит, которыми закодирован каждый пиксел. В следующей таблице показаны размеры файлов картинок bitmap, если они будут сохранены в формате RAW.
размер картинки глубина цвета размер файла
128 x 128 1 bit 2 KB
8 bits 16 KB
24 bits 48 KB
256 x 256 1 bit 8 KB
8 bits 64 KB
24 bits 192 KB
1K x 1K 1 bit 128 KB
8 bits 1 MB
24 bits 3 MBКак можно увидеть из таблицы, формат 24 бита на точку дают файлы большого размера, в этом случае применение компрессии файла становится важным. Есть множество вариантов сжатия (компрессии) изображений bitmap от очень простых до весьма сложных. Но всегда имеется два основных формата при использовании сжатия — lossless (когда файл сжимается без потерь, что дает самое лучшую передачу оригинальной картинки) и lossy (когда теряется некоторая часть графической информации). Ниже показана основная иерархия техник компрессии.
Самый грубый способ уменьшить размер файлов — ухудшить кодирование информации цвета, это так называемая техника редукции бит (bit reduction), или квантизация (quantization). Один из примеров — преобразование растра 24 bit bitmap в 8 bit indexed bitmap с использованием дизеринга для симуляции потерянных цветов. Наиболее известен среди форматов с потерями формат JPEG, и описание его работы выходит за рамки нашего обсуждения. Его основное преимущество в том, что он может предложить намного большую степень сжатия, чем форматы сжатия без потерь. Для примера рассмотрим следующую картинку bitmap с оригинальным размером 500 x 350 пикселей и 24 битами кодирования цвета на точку. По формуле для формата RAW размер не сжатого файла получится 500 x 350 x 24 / 8 / 1024 = 513 килобайт.
Сохранение этой же картинки в формате с градациями серого (редукцией бит) даст размер 171 килобайт (в 3 раза меньше), сохранение с сжатием RLE даст 388 килобайт (75% от оригинала), сохранение со сжатием LZW даст 188 килобайт (36% от оригинала), и сохранение в JPEG даст 30 килобайт (коэффициент сжатия 17:1).
Ниже мы рассмотрим пример самой простой техники сжатия без потерь, которая называется кодирование длины (run length encoding, RLE). Эта техника дает хороший выигрыш на картинках, где небольшое количество цветов. Предположим, что у нас есть маленькая картинка размером 16 x 10 пикселей, с кодированием цвета 8 бит.
Если картинка была сохранена в RAW, то для неё понадобится 16 байт на строку, всего 10 строк, т. е. 160 байт. Однако, как можно увидеть, первые две строки содержат точки одного и того же уровня, так что более эффективно сохранить количество точек и их уровень, чем сохранять уровень каждой точки по отдельности. Таким образом, на каждую строку вместо 16 байт можно оставить только 2 байта.
В формате raw первые 3 строки будут выглядеть так:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0С использованием сжатия RLE данные этих трех строк будут закодированы так:
16 0
16 0
2 0 12 1 2 0Конечно, актуальная реализация RLE содержит более сложный алгоритм, однако основной принцип кодирования при сжатии именно такой. Чтобы с помощью RLE получить большую степень сжатия, нужно чтобы на картинке повторялось большое количество одинаковых соседних точек, что будет вряд ли полезно для сохранения высококачественных фотографий с глубиной цвета 24 бита.
[Форматы файлов растровых изображений]
Следующий список дает краткое описание некоторых форматов, широко применяющихся для сохранения bitmap.
Используется на платформах: главным образом поддерживается на Mac/DOS-WINDOWS/Unix.
Примечания: TIFF является интернациональным стандартом для сохранения картинок и обмена ими между приложениями и аппаратными платформами. Поддержка этого формата почти всегда есть на многих приложениях, которые позволяют манипулировать растровыми изображениями. Формат состоит из элементов, называемых тэгами, что определено в стандарте. За каждым тегом следует другой тэг, получается зависящая от содержания тэгов структура данных. Поддерживаются большинство вариантов глубины цвета и методов компрессии.
Используется на платформах: изначально на DOS-WINDOWS.
Владелец: ZSoft Corp
Примечания: самый старый и наиболее широко используемый формат на компьютерах с DOS. Может поддерживать индексированный цвет 24 бита. Кодируется только по принципу RLE.
Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix.
Примечания: GIF также является очень популярным форматом. Чаще всего он используется на билбоардах и в Интернет. Кодирование ограничено 8 бит на точку с применением индексации цветов (палитра), для компрессии используется LZW. Может содержать в себе несколько изображений и текстовые оверлеи, поддерживается прозрачность, и также может содержать в себе несколько картинок, что позволяет делать анимацию изображений.
Используется на платформах: исключительно Mac.
Примечания: PICT используется только на компьютерах Macintosh. Реализация PICT на Macintosh работает на уровне операционной системы, и поддерживается всеми приложениями Macintosh. Этот формат отвечает за обмен изображениями на Macintosh и используется в операциях cut/copy/paste. Поддерживаются большинство пространств цвета и методов сжатия, включая JPEG.
Используется на платформах: наиболее часто поддерживается на Mac/DOS-WINDOWS/Unix.
Владелец: владельца нет, формат свободен от патентов
Примечания: очень полезный формат, который получает все больше поддержки в сети WWW. Поддерживается глубина цвета до 48 бит, передача уровней серого до 16 бит. Применяется много схем компрессии, включая даже определенные пользователем.
Используется на платформах: все платформы
Владелец: владельца нет
Примечания: это самый простой метод для сохранения картинок из всех, просто сохранение «сырых» (raw) байтов. Часто используется в фотокамерах для записи изображений. Например, один байт на точку для greyscale или 3 байта на точку для цветов RGB. Не существует единого стандарта на заголовок файлов RAW, это может определять сам производитель фотографического оборудования.
Используется на платформах: все платформы, изначально на UNIX
Владелец: владельца нет
Примечания: это несколько больше, чем простой raw формат, имеются некоторые согласованные части заголовка. Обычно используется для картинок 8 бит greyscale или цветных 24 bit RGB.
Используется на платформах: главным образом исключительно на DOS/Atari
Владелец: Digital Research
Примечания: поддерживается операционной системой GEM.
Используется на платформах: главным образом исключительно Amiga
Владелец: Electronic Arts
Примечания: поддерживается 4-битная таблица цветов и 24-битные цвета.
Используется на платформах: смешанная поддержка на Mac/DOS-WINDOWS/UNIX
Владелец: TrueVision Inc
Примечания: изначально разработана для плат захвата изображений VISTA. Несколько больше, чем простой RAW-формат, есть заголовок с дополнительной информацией.
Используется на платформах: главным образом DOS-Windows
Примечания: формат MicroSoft Windows, раньше использовался в основном только на ней, но потом благодаря своей простоте обрел популярность. Несжатые варианты особенно удобно использовать на маломощных встраиваемых системах. Поддерживаются глубина цвета от greyscale 1, 2, 4, 8 бита на точку до 32 битных цветных изображений.
Используется на платформах: Primarily Sun
Владелец: Sum MicroSystems
Примечания: Only supported by Sun. Use RLE and either 8 bit greyscale or 24/32 bit colour.
Используется на платформах: в основном платформа X system
Владелец: MIT X Corp
Примечания: специально для программной реализации отображения растровых картинок в оконной системе X windows, используется для курсоров и иконок.
Используется на платформах: в основном платформа X system
Владелец: MIT X Corp
Примечания: формат сохранения экрана в X windows. Поддерживается глубина цвета от монохрома до 24 бит на точку с прямым кодированием цветов.