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

Содержание

Проверочная работа «Кодирование изображения»

Вариант 1.

1.       Сколько бит видеопамяти потребуется для кодирования одного пикселя 4-цветного изображения?

2.       Для хранения информации о цвете одного пикселя требуется 6 бит. Сколько цветов в этом случае может быть отображено на экране?

3.       Какой минимальный объем видеопамяти потребуется для хранения 16-цветного изображения, если разрешающая способность монитора 500*512?

4.       Видеопамять делится на 2 страницы. Разрешающая способность монитора 1024*768. Вычислить объем видеопамяти, если битовая глубина равна 9.

5.       Объем видеопамяти компьютера равен 250 Кбайт. Разрешающая способность монитора – 500*512. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 16 цветов?

 

Вариант 2.

1.       Сколько бит видеопамяти потребуется для кодирования одного пикселя 16-цветного изображения?

2.       Для хранения информации о цвете одного пикселя требуется 7 бит. Сколько цветов в этом случае может быть отображено на экране?

3.       Какой минимальный объем видеопамяти потребуется для хранения 256-цветного изображения, если разрешающая способность монитора 640*480?

4.       Видеопамять делится на 3 страницы. Разрешающая способность монитора 500*512. Вычислить объем видеопамяти, если битовая глубина равна 8.

5.       Объем видеопамяти компьютера равен 937,5 Кбайт. Разрешающая способность монитора – 800*600. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 256 цветов?

 

Вариант 3.

1.       Сколько бит видеопамяти потребуется для кодирования одного пикселя 8-цветного изображения?

2.       Для хранения информации о цвете одного пикселя требуется 9 бит. Сколько цветов в этом случае может быть отображено на экране?

3.       Какой минимальный объем видеопамяти потребуется для хранения 32-цветного изображения, если разрешающая способность монитора 1024*768?

4.       Видеопамять делится на 4 страницы. Разрешающая способность монитора 800*600. Вычислить объем видеопамяти, если битовая глубина равна 6.

5.       Объем видеопамяти компьютера равен 900 Кбайт. Разрешающая способность монитора – 640*480. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 256 цветов?

 

Вариант 4.

1.       Сколько бит видеопамяти потребуется для кодирования одного пикселя 512-цветного изображения?

2.       Для хранения информации о цвете одного пикселя требуется 3 бита. Сколько цветов в этом случае может быть отображено на экране?

3.       Какой минимальный объем видеопамяти потребуется для хранения 16-цветного изображения, если разрешающая способность монитора 640*480?

4.       Видеопамять делится на 2 страницы. Разрешающая способность монитора 500*512. Вычислить объем видеопамяти, если битовая глубина равна 10.

5.       Объем видеопамяти компьютера равен 375 Кбайт. Разрешающая способность монитора – 400*512. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 32 цветов?

Иллюстрированный самоучитель по Adobe Photoshop CS2 › Цвет › Режим Indexed Color и глубина цвета [страница — 121] | Самоучители по графическим программам

Режим Indexed Color и глубина цвета

Глубина цвета – это еще один важнейший параметр растровых изображений. Сразу оговорим, что он тесно связан с архитектурой существующих компьютеров и исторически сложившимися стандартами. Глубина цвета выражается в битах и показывает, сколько бит памяти требуется для хранения одного пикселя изображения.

Компьютер имеет дело с цифровой информацией в двоичной системе счисления. Двоичный разряд может иметь два значения: единица или ноль (как вы знаете, десятичный разряд может принимать десять значений от нуля до девяти). Этот наименьшая элементарная информации называется битом. Восемь двоичных разрядов, восемь бит, образуют байт. Байт может принимать 28 = 256 значений (восемь десятичных разрядов могут принимать 108 = 100 000 000 значений). Почему байт составляют именно восемь бит? Да просто потому, что восемь разрядов имели первые микропроцессоры. Разрядность современных микропроцессоров для совместимости с их предшественниками тоже кратна восьми. Для больших значений используются «псевдодесятичные» приставки: 1024 байт =1 Кбайт, 1024 Кбайт=1Мбайт.

В памяти компьютера информация о цвете пикселей изображения тоже хранится в двоичном представлении. Поэтому для быстрой ее обработки пиксел кодируется одним или несколькими байтами. Единственное исключение составляют монохромные изображения. Для хранения информации о цвете пикселя такого изображения вполне достаточно одного бита, ведь пиксель может иметь всего два цвета. Таким образом, глубина цвета монохромных изображений составляет 1 бит. Зная, сколько памяти требуется для хранения одного пикселя изображения (то есть глубину цвета), легко рассчитать, сколько памяти займет все изображение. Например, изображение размером 100х100 пикселей займет 100 пикселей x 100 пикселов х 1 бит = 10 000 бит приблизительно 1.2 Кбайт. Объем памяти, занимаемый цветными изображениями, зависит от количества имеющихся в них каналов. Каждый канал является полутоновым, то есть кодируется одним байтом. Если каналов три, как в изображениях в модели RGB или LAB, то на один пиксел приходится 8 бит х 3 =24 бита.В модели CMYK четыре канала и глубина цвета равна 8 бит х 4 = 32 бита. Таким образом, память, занимаемая цветными изображениями, в три или четыре раза больше, чем для полутоновых изображений: 100 пикселей х 100 х 24 бит = 240 000 бит приблизительно 29.3 Кбайт или 100 х 100 х 32 бит = 320 000 бит = 39.1 Кбайт.

Говоря о глубине цвета для типов растровых изображений, мы имели в виду наиболее употребительные изображения с восьмибитными каналами. Adobe Photoshop допускает ограниченное редактирование изображений с 16 битами на канал (Выделение областей, Feather, Клонирующий штамп (Rubber Stamp), в общем, очень мало возможностей.) Нетрудно вычислить, что цветное изображение с восьмибитными каналами может содержать максимум 224=16.7 млн. цветов. С шестнадцатибитными каналами количество цветов увеличивается до 216×3 = 248= 281 млрд. Такое количество цветов имеет смысл использовать лишь в том случае, если ваш сканер поддерживает 48-битный цвет. Пока это под силу только очень дорогим профессиональным сканерам.

Для перевода из 8-ми битного цвета в 16-ти битный и наоборот предназначены одноименные команды из подменю Mode из подменю Image. (8 bits/channel и 16 bits/channel). Еще один тип изображений › индексированные изображения. Это один из первых способов представления цветных точечных изображений. Он широко применялся в те времена, когда компьютеры были не столь мощными, а видеоадаптеры, поддерживающие более 256 цветов, являлись роскошью. Индексированное изображение как раз и рассчитано на хранение не более чем 256 цветов. Цвета, использованные в индексированном изображении, могут быть произвольными, но их общее количество не должно превышать указанного. Какие именно цвета использованы в изображении, определяется его палитрой. Палитра индексированного изображения представляет собой нумерованный список цветов и хранится в файле вместе с изображением. Каждый байт индексированного изображения хранит номер цвета в палитре, а не значения RGB-компонентов цвета. В результате на один пиксель цветного индексированного изображения приходится не 24 бита, а всего 8.

Палитра индексированного изображения может иметь не только 256 цветов, но и меньшее их количество. Сокращение палитры дает возможность сократить и размер файла. Например, если палитра будет состоять не из 256, а из 64 цветов, то для кодирования одного пикселя потребуется только 6 бит, а не 8. В результате размер изображения уменьшится на четверть. Таким образом, глубина цвета индексированных изображений может принимать целые значения в диапазоне от 1 до 8. Компактность представления цветов в индексированных изображениях объясняет нынешнюю сферу их применения – Web-дизайн.

Индексированные изображения получают из полноцветных сокращением количества использованных цветов. Иными словами, изображение приводится к ограниченной палитре. Какие из цветов изображения попадут в палитру, определяется особыми алгоритмами или указывается непосредственно. Первый способ используют, когда необходимо достичь наилучшего приближения индексированного изображения к цветам оригинала. Ко второму прибегают, если хотят достичь одинакового воспроизведения цветов в разных программах или на разных компьютерах. Для перевода изображения в индексированное необходимо выбрать пункт Indexed Color из подпункта Mode меню Image. В ответ получите такое окно:

Урок в 7 классе ФГОС.

КОМПЬЮТЕРНАЯ ГРАФИКА

ОБРАБОТКА ГРАФИЧЕСКОЙ ИНФОРМАЦИИ

Ключевые слова

  • графический объект
  • компьютерная графика
  • растровая графика
  • векторная графика
  • форматы графических файлов

Сферы применения компьютерной графики

Компьютерная графика прочно вошла в нашу повседневную жизнь. Она применяется:

в тренажёрах и компьютерных играх

для наглядного представления результатов измерений и наблюдений

для творческого самовыражения человека

при создании спецэффектов в киноиндустрии

при разработке дизайнов интерьеров и ландшафтов

Способы создания цифровых графических объектов

Графические объекты, созданные или обработанные с помощью компьютера, сохраняются на компьютерных носителях; при необходимости они могут быть выведены на бумагу или другой подходящий носитель (плёнку, картон).

Принцип работы сканера состоит в том, чтобы разбить имеющееся на бумажном носителе изображение на крошечные квадратики — пиксели, определить цвет каждого пикселя и сохранить его в двоичном коде в памяти компьютера.

Способы получения цифровых

графических объектов

Копирование готовых

изображений с

цифровой фотокамеры,

из Интернета

Создание новых

изображений с

помощью программного

обеспечения

Ввод графических

изображений

с помощью сканера

Цифровая фотокамера

Сканер

Задача

Сканируется цветное изображение размером 10  10 см. Разрешающая способность сканера 1200  1200 dpi, глубина цвета – 24 бита. Какой информационный объём будет иметь полученный графический файл?

Решение.

Размеры сканируемого изображения составляют приблизительно 4  4 дюйма. С учётом разрешающей способности сканера всё изображение будет разбито на 4  4  1200  1200 пикселей.

K = 4  4  1200  1200

i = 24 бита

I = K i .

I — ?

I = 4  4  1200  1200  24 = 2 2  2 2  2 4  75  2 4  75  2 3  3 =

= 75  75  3  2 15 =16875  2 15 (битов) = 16875  2 12 (байтов) =

= 16875  2 2 (Кбайт)  66 (Мбайт).

Ответ:  66 Мбайт.

Виды графики

В зависимости от способа создания графического изображения различают растровую, векторную и фрактальную графику.

Растровая графика

В растровой графике изображение формируется в виде растра – совокупности точек (пикселей), образующих строки и столбцы.

Растровое изображение и его увеличенный фрагмент

Векторная графика

В векторной графике изображение формируется на основе наборов данных (векторов), описывающих графические объекты и формулы их построения.

Векторное изображение, его преобразованный фрагмент и простейшие геометрические фигуры, из которых «собран» этот фрагмент

Фрактальная графика

Фрактальная графика , как и векторная, основана на математических вычислениях.

Сравнение растровой и векторной графики

Формирование изображения

Растровая графика

Увеличение размера изображения

Векторная графика

Совокупность точек

Уменьшение

размера изображения

Ступенчатый эффект

Геометрические фигуры

Не изменяется

Потеря чёткости

Сохранение изображения

Не изменяется

Информация о цвете каждого пикселя

Сферы применения

Информация о простейших геометрических объектах, составляющих изображение

Иллюстрации, фотографии

Чертежи, схемы, деловая графика

Форматы графических файлов

Формат графического файла – это способ представления графических данных на внешнем носителе.

Форматы графических изображений

Векторные

Растровые

JPEG

WMF

EPS

GIF

BMP

Форматы графических файлов

Задача 1

Для кодирования одного пикселя используется 3 байта. Фотографию размером 2048  1536 пикселей сохранили в виде несжатого файла. Определите размер получившегося файла.

Решение.

i = 3 байта

K = 2048  1536

I — ?

I = 2048  1536  3 = 2  2 10  1,5  2 10  3 = 9  2 20 (байтов) =

= 9 (Мб).

Ответ: 9 Мб.

I = Ki

Задача 2

Задача 2. Несжатое растровое изображение размером

128  128 пикселей занимает 2 Кб памяти.

Каково максимально возможное число цветов в палитре изображения?

Решение.

K =128  128

I =2 Кб

N – ?

i = 2  1024  8/(128  128) = 2  2 10  2 3 /(2 7  2 7 ) = 2 1+10+3 /2 7+7 =

= 2 14 /2 14 = 1 (бит).

N = 2 1 = 2.

Ответ: 2 цвета — чёрный и белый.

I = K i

i = I / K

N = 2 i

Самое главное

Компьютерная графика — это:

  • разные виды графических объектов, созданных или обработанных с помощью компьютеров;
  • область деятельности, в которой компьютеры используются как инструменты создания и обработки графических объектов.

В растровой графике изображение формируется в виде растра — совокупности пикселей, образующих строки и столбцы. В памяти компьютера сохраняется информация о цвете каждого входящего в него пикселя.

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

Формат графического файла — это способ представления графических данных на внешнем носителе. Различают растровые и векторные форматы графических файлов, среди которых, в свою очередь, выделяют универсальные графические форматы и собственные форматы графических приложений.


Вопросы и задания

Выберите (отметьте галочкой) устройства ввода графической информации:

Установите соответствие:

Выберите (отметьте галочкой) графические форматы файлов:

В памяти компьютера хранится

математическая формула (уравнение),

по которой строится изображение

В чём разница между растровым и векторным способами представления изображения?

Что такое компьютерная графика?

Какая операция по преобразованию растрового изображения ведёт к наибольшим потерям его качества — уменьшение или увеличение?

Почему масштабирование не влияет на качество векторных изображений?

Чем вы можете объяснить разнообразие форматов графических файлов?

В чём основное различие универсальных графических форматов и собственных форматов графических приложений?

Каким образом могут быть получены цифровые графические объекты?

Перечислите основные сферы применения компьютерной графики.

Почему считается, что растровые изображения очень точно передают цвет?

Растровая

графика

сканер

клавиатура

видеокамера

микрофон

фотоаппарат

диктофон

монитор

принтер

графопостроитель

графический планшет

BMP

GIF

TXT

JPEG

DOC

PDF

WMF

EPS

EXE

COM

В памяти компьютера сохраняется

информация о цвете каждого

входящего в него пикселя

Векторная

графика

Фрактальная

графика

В памяти компьютера сохраняется

информация о простейших

геометрических объектах,

составляющих изображение

Опорный конспект

Графические объекты — это рисунки, картины, чертежи,

фотографии и другие графические изображения.

Объекты, созданные

с помощью

компьютера

Способы получения

цифровых

графических объектов

Компьютерная

графика

Деятельность по

обработке

графических

объектов с помощью

компьютеров

Копирование

готовых

изображений

Ввод

изображений

с помощью сканера

Графические изображения

Создание

изображений

с помощью

приложений

Растровые

Векторные

GIF

EPS

WMF

JPEG

BMP

Форматы графических файлов

Кодирование изображения. Работа с растровым графическим редактором

§20. Как кодируется изображение

Основные темы параграфа:

— кодирование цветов пикселей;

— объем видеопамяти.

Изучаемые вопросы:

— Принцип формирования цвета пикселя на экране.

— Связь между количеством цветов в палитре и количеством бит для кодирования одного пикселя (формула).

— Формула определения объёма видеопамяти для хранения изображения заданного размера.

Кодирование цветов пикселей

Информация о состоянии каждого пикселя хранится в закодированном виде в памяти компьютера. Код может быть однобитовым, двухбитовым и т. д.

Код пикселя — это информация о цвете пикселя.

Для получения черно-белого изображения (без полутонов) используются два состояния пикселя: светится — не светится (белый — черный). Тогда для кодирования цвета пикселя достаточно одного бита памяти:

1 — белый;

0 — черный.

Количество цветов, в которые может быть окрашен пиксель на цветном дисплее, больше двух. Поэтому одного бита на пиксель недостаточно.

Для кодирования четырехцветного изображения требуется двухбитовый код, поскольку с помощью двух битов можно выразить четыре различных значения (отобразить четыре различных состояния). Может использоваться, например, такой вариант кодирования цветов:

00 — черный;

10 — зеленый;

01 — красный;

11 — коричневый.

Из трех базовых цветов — красного, зеленого, синего — можно получить восемь комбинаций трехбитового кода:

В этом коде каждый базовый цвет обозначается его первой буквой (к — красный, з — зеленый, с — синий). Черточка означает отсутствие цвета.

Следовательно, для кодирования восьмицветного изображения требуются три бита памяти на один видеопиксель. Если наличие базового цвета обозначить единицей, а отсутствие — нулем, то получается таблица кодировки восьмицветной палитры (табл. 4.1).

Таблица 4.1. Двоичный код восьмицветной палитры

Из сказанного, казалось бы, следует вывод: с помощью трех базовых цветов нельзя получить палитру, содержащую больше восьми цветов. Однако на экранах современных компьютеров получают цветные изображения, составленные из сотен, тысяч и даже миллионов различных оттенков. Как это достигается?

Если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, дающих разные оттенки, увеличивается.

Шестнадцатицветная палитра получается при использовании четырехразрядной кодировки пикселя: к трем битам базовых цветов добавляется один бит интенсивности. Этот бит управляет яркостью всех трех цветов одновременно (интенсивностью трех электронных пучков) (табл. 4.2).

Таблица 4.2. Двоичный код шестнадцатицветной палитры.
«и» — бит интенсивности

Большее количество цветов получается при раздельном управлении интенсивностью базовых цветов. Причем интенсивность может иметь более двух уровней, если для кодирования интенсивности каждого из базовых цветов выделять больше одного бита.

Из сказанного можно вывести правило.

Количество различных цветов К и количество битов для их кодирования b связаны между собой формулой К = 2b.

21 = 2, 22 = 4, 23 = 8, 24 = 16 и т. д. Для получения цветовой гаммы из 256 цветов требуется 8 битов = 1 байт на каждый пиксель, так как 28 = 256.

Величина b называется битовой глубиной цвета.

Объем видеопамяти

Объем необходимой видеопамяти определяется размером графической сетки дисплея и количеством цветов. Минимальный объем видеопамяти должен быть таким, чтобы в него помещался один кадр (одна страница) изображения. Например, для сетки 640 х 480 и черно-белого изображения минимальный объем видеопамяти должен быть таким:

640 • 480 • 1 бит = 307 200 битов = 38 400 байтов.

Это составляет 37,5 Кбайт.

Для работы с 256-цветной палитрой на мониторе с разрешением 1024 х 768 минимальный объем видеопамяти составляет 768 Кб.

На современных высококачественных дисплеях используется палитра более чем из 16 миллионов цветов (b = 24 бита). Требуемый объем видеопамяти в этом случае — несколько мегабайтов.

На самом деле видеопамять хранит одновременно не одно изображение экрана, а множество. Это способствует быстрой смене кадров. Поэтому размер видеопамяти на современных ПК составляет от сотен мегабайтов до нескольких гигабайтов.

Коротко о главном

Информация в видеопамяти — это двоичные коды, обозначающие цвета пикселей на экране.

Для кодирования двух цветов достаточно 1 бита на пиксель; четырех цветов — 2 битов; восьми цветов — 3 битов; шестнадцати цветов — 4 битов и т. д. Количество цветов К и размер кода в битах (битовая глубина цвета) b связаны формулой К = 2b.

Из трех базовых цветов можно получить 8 различных цветов. Большее число цветов получается путем управления интенсивностью базовых цветов.

Минимально необходимый объем видеопамяти зависит от размера сетки пикселей и от количества цветов. Обычно в видеопамяти помещается несколько страниц (кадров) изображения одновременно.

Вопросы и задания

1. Какая информация содержится в видеопамяти?

2. Сколько битов видеопамяти на один пиксель требуется для хранения двухцветного; четырехцветного; восьмицветного; шестнадцатицветного изображения?

3. Какие цвета получаются из смешения красного и синего, красного и зеленого, зеленого и синего цветов?

4. Сколько цветов будет содержать палитра, если каждый базовый цвет кодировать двумя битами?

5. Придумайте способ кодирования цветов для 256-цветной палитры.

6. Пусть видеопамять компьютера имеет объем 512 Кбайт. Размер графической сетки — 640 х 480. Сколько страниц экрана одновременно разместится в видеопамяти при палитре из 16 цветов; 256 цветов?

Электронное приложение к уроку

Вернуться к материалам урока




Презентации, плакаты, текстовые файлыРесурсы ЕК ЦОР

Видео к уроку


Cкачать материалы урока

Кодирование изображений — Кодирование изображения — Кодирование — Каталог файлов

Информация о состоянии каждого пикселя хранится в закодированном виде
в памяти компьютера. Код может быть однобитовым, двухбитовым и т.д.

Код пикселя — это информация о цвете пикселя.

Кодирование черно-белого изображения

  

Для получения черно-белого изображения пиксель может находится в
одном из двух состояний: светится – не светится. Тогда для его
кодирования достаточно 1 бита памяти:

  • 1 – белый,
  • 0 – черный.

Задача 1

Сколько бит памяти требуется для хранения черно-белого изображения буквы К?

  

Дано:

Растровая сетка размером 10 х 10 с изображением буквы


Сколько бит памяти требуется для хранения информации?


Решение:

1. Количество пикселов, требующихся для хранения: 10×10=100.

2. Т.к. для хранения 1 пикселя требуется 1 бит памяти, объем памяти = 100 бит.

Ответ: Для хранения информации требуется 100 бит памяти.


Задача 2

Изменится ли объем памяти, необходимой для хранения рисунка, если будет изображена другая картинка?

  

Дано:

Растровая сетка размером 10 х 10 с изображением буквы


Сколько бит памяти требуется для хранения информации?


Решение:

1. Количество пикселов, требующихся для хранения: 10×10=100.

2. Т.к. для хранения 1 пикселя требуется 1 бит памяти, объем памяти = 100 бит.

Ответ: Для хранения информации требуется 100 бит памяти. Объем памяти не изменится.


Задача 3

Черно-белая картинка построена на экране монитора с разрешением 800 х 600. Какой объем памяти она занимает?

  

Дано:

Растровая сетка размером 800 х 600 с изображением картинки.


Какой объем памяти требуется для хранения картинки?


Решение:

1. Количество пикселов, требующихся для хранения: 800 х 600 = 480 000.

2. Т.к. для хранения 1 пикселя требуется 1 бит памяти, объем памяти равен: 800 х 600 бит = 100*600 байт = 58,6 Кбайт

Ответ: Для хранения информации требуется 58,6 Кбайт памяти.


Как получается цветное изображение на экране?

  

Каждый пиксел на цветном экране — это совокупность трех точек разного
цвета: красного, зеленого и синего. Эти точки расположены так близко
друг к другу, что нам они кажутся слившимися в ожну точку.

Из сочетания красного, зеленого и синего цветов складывается вся красочная палитра на экране.

Электронная пушка цветного монитора испускает три луча. Каждый луч
вызывает свечение точки только одного цвета. Для этого в мониторе
используется специальная фокусирующая система.

Кодирование цветного изображения

Как рассчитать объем памяти для хранения цветного изображения? Можно
ли в 1 бит записать информацию о цветах палитры? Сколько бит нужно для
кодирования одного пикселя на цветном дисплее?

Попробуем ответить на эти вопросы.

  

Мы знаем, что любой цвет на экране получается смешиванием трёх цветов: красного, зелёного и синего.

Кодирование цвета в компьютере при помощи трёх составляющих (красной, зелёной и синей) называется RGB (от Red — красный, Green — зелёный, Blue — синий).

Белый цвет получается при смешивании 100% красного, зеленого и синего цвета.

Желтый цвет — это 100% красного и зеленого и 0% синего цвета.

 

Для хранения цвета, состоящего из трех составляющих, требуется трехбитовый двоичный код.

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

  

Цвет

R (красный)

G (зеленый)

B (синий)

 0

0

0

 0

0

1

 0

1

0

 0

1

1

 1

0

0

 1

0

1

 1

1

0

 1

1

1

 

Вывод: для кодирования восьмицветного изображения требуются 3 бита памяти на 1 видеопиксель.

Из сказанного, казалось бы, следует вывод: с помощью трех базовых
цветов нельзя получить палитру, содержащую больше восьми цветов. Однако,
на экранах современных компьютеров получают цветные изображения,
составленные из сотен, тысяч и даже миллионов различных красок и
оттенков. Как это достигается?

Если иметь возможность управлять интенсивностью (яркостью)
свечения базовых цветов, то количество различных сочетаний, дающих
разные краски и оттенки, увеличивается.

Если к трем битам базовых цветов добавить один бит интенсивности,
который управляет яркостью всех трех цветов одновременно, то получится
шестнадцатицветная палитра.

Цвет

R (красный)

G (зеленый)

B (синий)

И (интенсивность)

 0

0

0

0

 0

0

1

0

 0

1

0

0

 0

1

1

0

 1

0

0

0

 1

0

1

0

 1

1

0

0

 1

1

1

0

 0

0

0

1

 0

0

1

1

 0

1

0

1

 0

1

1

1

 1

0

0

1

 1

0

1

1

 1

1

0

1

 1

1

1

1

Большое количество цветов получается при раздельном управлении
интенсивностью базовых цветов. Причем для интенсивности каждого из
базовых цветов можно выделять больше одного бита.

Из всего сказанного можно сделать вывод: для кодирования цветного
изображения можно использовать более 3 бит памяти на 1 видеопиксель.

Количество бит, выделенных для записи цвета одного пикселя, называется

глубиной цвета.

Максимальное количество цветов зависит от глубины цвета.

Количество цветов (K), и глубина цвета (b) связаны между собой формулой:   

K = 2b

Например, для получения цветовой гаммы в 256 цветов требуется 8 битов = 1 байт на каждый пиксель, так как
  256 = 28

Объем видеопамяти

Объем необходимой видеопамяти определяется размером графической сетки
дисплея и количеством цветов. Минимальный объем видеопамяти должен быть
таким, чтобы в нее помещался один кадр (одна страница) изображения.

Задача 4

Рисунок построен с использованием палитры 256 цветов на экране
монитора с графическим разрешением 1024 х 768. Рассчитать объем памяти,
необходимый для хранения этого рисунка.

  

Дано:

Растровая сетка размером 1024 х 768.

Количество цветов К = 256


Рассчитать объем видеопамяти.


Решение:

1. По формуле K = 2b определяем глубину цвета.
256 = 28. Значит, глубина цвета b = 8 бит.

2. Количество пикселей на экране: 1024 х 768 = 786432.

3. 786432 * 8 бит = 786432 байт = 768 Кбайт

Ответ: Объем видеопамяти — 768 Кбайт.


Задача 5

Какая минимальная глубина цвета требуется для кодирования 20 цветов?

  

Дано:

Количество цветов К = 20


Какова глубина цвета?


Решение:

1. По формуле K = 2b определяем глубину цвета.
16 = 24 — это слишком мало.
32 = 25 — этого более чем достаточно. Значит, глубина цвета b = 5 бит.

Ответ: Глубина цвета b = 5 бит.

Форматы файлов в Adobe Photoshop

Формат Photoshop Raw является гибким форматом файла, предназначенным для передачи изображений между приложениями и компьютерными платформами. Этот формат поддерживает изображения CMYK, RGB и в градациях серого с альфа-каналами, а также многоканальные изображения и изображения Lab без альфа-каналов. Документы, сохраненные в формате Photoshop Raw, могут быть любого размера в пикселах и иметь любой размер файла, однако не могут содержать слои.

Формат Photoshop Raw состоит из потока байтов, описывающего данные о цвете в изображении. Каждый пиксель описывается в двоичном формате, где 0 представляет черный цвет, а 255 — белый цвет (для изображений с 16-битными каналами белый описывается значением 65535). Photoshop определяет число каналов, необходимых для описания изображения, а также любые дополнительные каналы изображения. Можно задать расширение файла (Windows), тип файла (Mac OS), указать создателя файла (Mac OS) и данные заголовка.

В Mac OS тип файла, как правило, представляет собой четырехзначный идентификатор, определяющий файл, например идентификатор TEXT определяет файл как текстовый файл ASCII. Создатель файла обычно также обозначается четырехзначным идентификатором. Большинство приложений Mac OS имеют уникальный идентификатор создателя файла, зарегистрированный в группе Apple Computer Developer Services.

Параметр «Заголовок» определяет количество байтов данных в файле, предшествующих собственно данным изображения. Этим значением определяется число нулей, вставляемых в начале файла в качестве местозаполнителей. По умолчанию заголовок не используется (размер заголовка = 0). При открытии файла можно ввести заголовок в формате Raw. Можно также сохранить файл без заголовка, а затем использовать специальную программу для редактирования файлов, например HEdit (в Windows) или Norton Utilities (в Mac OS), чтобы заменить нули данными заголовка.

Можно сохранить изображение в формате с чередованием или без. Если выбран режим с чередованием, значения цветов (например, красного, зеленого и синего) хранятся в определенной последовательности. Выбор зависит от требований приложения, которым предполагается открывать файл.

Microsoft Word — Регистрация растрового изображения в MapInfo-my.doc

%PDF-1.6 %
150 0 obj >/OCGs[214 0 R]>>/Pages 149 0 R/Type/Catalog>> endobj 213 0 obj >stream
application/pdf

  • Борис Кузнецов
  • Microsoft Word — Регистрация растрового изображения в MapInfo-my.doc
  • 2014-12-23T08:02:03ZWord2015-01-28T11:48:44+04:002015-01-28T11:48:44+04:00Mac OS X 10.7.5 Quartz PDFContextuuid:e6ec1ed1-e0bc-4b45-ad37-b677eb09662duuid:bd745e51-6534-584e-959b-3507d71d63f3

    endstream endobj 149 0 obj > endobj 3 0 obj > endobj 48 0 obj > endobj 94 0 obj > endobj 131 0 obj > endobj 130 0 obj > endobj 139 0 obj > endobj 140 0 obj >stream
    xZioD>bhx6/B[DH ^YZ Dgql^qӗF߳=3q^+^Zֶ15殷oG?yF7tޜmM_Z+w=75agwaD߽W| d-7NL\k6G,ahG4Q^6uǵe’/eT}_wf

    c[30E3H[0 ?99M6I^0’7Ϙ0;˭\?绯N&x^͐ihݺ~m­0~ff L]Q\

    CS110 — Расчет размера файла

    Обзор

    В этом упражнении вы рассмотрите расширенную серию примеров, которые помогут прояснить
    индексированное представление цвета, используемое для изображений. В
    примеры основаны на национальных
    флаги, а используемые изображения взяты из
    эта Википедия
    статья о стилях национальных флагов

    В индексированном представлении цвета вместо хранения 3-байтового (24-битного) значения цвета для каждого пикселя
    на изображении вы нумеруете или индексируете различных цветов, используемых в изображении, и сохраняете
    index или номер цвета для каждого пикселя.Этот метод значительно уменьшает размер файла изображения.
    Часть техники состоит в том, что вам также понадобится таблица цветов , которая содержит фактический цвет.
    значения в индексированном порядке.

    Вот общие формулы для определения размера файла с использованием индексированного цвета для изображения.
    используя конкретный #colors с размерами шириной и высотой в пикселях.

    1. Рассчитайте количество бит, необходимое для хранения индекса цвета для каждого пикселя (известное как битовая глубина
    (ПРИМЕЧАНИЕ: потолок означает, что если есть дробная часть, округлить до следующего более высокого целого значения):

      битовая глубина  = потолок (журнал (#colors) / журнал (2)).

    Или воспользуйтесь этой таблицей:

    #colors битовая глубина (бит / пиксель)
    1-2 1
    3-4 2
    5-8 3
    9 — 16 4
    17 — 32 5
    33 — 64 6
    65 — 128 7
    129 — 256 8

    2.Рассчитайте количество байтов, необходимых для хранения значений цвета в таблице цветов

      # байтов для таблицы цветов  = #colors x 3  (байтов / цвет) . 

    3. Вычислите общее количество пикселей в изображении заданной ширины и высоты:

      # пикселей в изображении  = ширина x высота. 

    4. Рассчитайте количество байтов, необходимое для хранения номера цвета для каждого пикселя (ПРИМЕЧАНИЕ.
    деление на 8 преобразует биты в байты):

      # байтов для информации о цвете пикселей  = # пикселей x битовая глубина / 8.

    5. Рассчитайте общее количество байтов, необходимых для файла образа:

      # байтов для файла изображения  = # байтов для таблицы цветов +
                            # байтов для информации о цвете пикселей. 

    Польша

    Флаг Польши выглядит так:

    Если бы мы создали для этого набор «раскраска по номерам», это было бы
    довольно легко. Всего два цвета, красный и белый, поэтому у нас есть только
    предоставить две краски.Образ будет довольно легко создать. Наш единственный
    решение, на самом деле, состоит в том, чтобы решить, будет ли «красный» цветом 0 и
    «белый» цвет 1 или наоборот. Предположим, мы сделали белый цвет нулевым. Вот
    наш комплект:

    Конечно, если мы хотим, чтобы красный был цветом 0, мы просто меняем нумерацию цветов.
    и отрегулируйте:

    Дело в том, что наше представление состоит из двух частей:

    1. Таблица цветов или палитра, в которой каждый разный цвет (3-байтовое значение RGB) используется в
      изображение хранится в таблице, и каждой записи присваивается номер.
    2. Информация о цвете пикселей , которая представляет собой номер цвета из таблицы для каждого пикселя в изображении.

    Общее количество бит / байтов для хранения этих двух частей и есть размер файла изображения.

    ПРИМЕЧАНИЕ: размеры изображения также сохраняются как часть файла изображения, поэтому здесь
    на самом деле также пара байтов в
    начало файла изображения для ширины и высоты. Однако пока
    это нужно и важно, это не очень интересная деталь
    представления, поэтому мы обычно не добавляем их в наши вычисления размера файла.

    Расчет размера файла

    Прежде чем мы сможем рассчитать размер файла, мы должны определить
    глубина бит изображения. В этом случае, потому что есть
    всего два цвета, достаточно одного бита, чтобы пронумеровать все цвета.
    Следовательно, битовая глубина составляет один бит .

    Размеры флага: 200 (ширина в пикселях) на 125 (высота в пикселях),
    Итак, у нас есть следующие расчеты:

    • Цветовая таблица или палитра содержат два цвета, для каждого из которых требуется 3 байта.
      представление (помните: один байт для красного, один для зеленого и один для
      синий).Так,

      2 (цвета) * 3 (байты / цвет) = 6 (байты)

    • Общее количество пикселей в изображении составляет 200 (ширина в пикселях) x 125 (высота в пикселях) = 25000 (пикселей).

      Каждому пикселю требуется один бит для хранения информации о цвете: либо ноль
      (это означает, что цвет , ноль входит в этот пиксель) или единица
      (имеется в виду цвет , туда идет ). Итак, чтобы сохранить информацию о цвете пикселей:

      25000 (пикселей) * 1 (бит / пиксель) / 8 (бит / байт) = 3125 (байтов).

    • Полное представление изображения, которое включает как информацию о цвете, так и
      палитра, это:

      3125 (байтов) + 6 (байтов) = 3131 (байтов).

    Индонезия

    Флаг Индонезии очень похож на флаг Польши, за исключением того, что
    полосы перевернуты:

    Итак, мы можем использовать точно такой же эскиз, что и для флага Польши, и
    просто измените цветовую таблицу:

    Расчет размера файла

    Поскольку этот флаг имеет такое же количество цветов, что и флаг Польши,
    битовая глубина такая же.Количество байтов для представления палитры
    то же самое, а именно 6 байт. Количество байтов для представления
    информация о цвете пикселей зависит от битовой глубины (которая совпадает с предыдущим флагом),
    и размеры флага (который немного отличается от 200 х 133).

    Итак, расчет почти такой же, но не совсем:

    • Цветовая таблица или палитра: 2 (цвета) * 3 (байты / цвет) = 6 (байты).
    • Есть 200 x 133 = 26600 (всего пикселей), каждому из которых нужен один бит для хранения номера цвета.26600 (бит) / 8 (байтов / бит) = 3325 (байтов).
    • Полное представление, которое включает как информацию о цвете пикселей, так и
      таблица цветов, это 3325 (байтов) + 6 (байтов) = 3331 (байтов).

    Украина

    Другая страна, флаг которой состоит из двух равных горизонтальных полос, —
    Украина:

    Еще раз, чтобы сделать этот флаг, мы можем использовать тот же двухцветный набросок, что и
    раньше, и просто измените палитру:

    Расчет размера файла

    Предположим, что флаг Украины имеет те же размеры, что и флаг Индонезии.Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Вы пришли к таким же ответам? Поскольку флаг Украины имеет такое же количество цветов, что и флаг Украины.
    Индонезия, и изображение имеет такие же размеры, размер файла
    вы рассчитали должны быть такими же. Фактические используемые цвета не влияют на размер файла (по крайней мере,
    для наших целей.В реальных форматах файлов изображений есть дополнительные хитрости
    для сжатия информации, но это выходит за рамки этого курса.)

    Швейцария

    Конечно, есть флаги, которые не состоят из двух одинаковых горизонтальных
    полосы. Один из них — флаг Швейцарии:

    Хотя расположение цветов на флаге отличается от предыдущего
    флаги, по-прежнему есть только два разных цвета: красный и
    белый.

    Расчет размера файла

    Предположим, что ширина флага = 200 пикселей, а высота = 200 пикселей, и вычислим:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Битовая глубина

    До сих пор все наши флаги были двухцветными; то есть в таблице цветов
    только две записи, поэтому мы могли бы использовать только и один бит, чтобы указать
    цвет в любом конкретном пикселе: ноль для первого цвета,
    и , один для второго цвета. Потому что всего один бит
    достаточно, битовая глубина всех наших флагов до сих пор составляет один
    немного.

    Франция

    Флаг Франции состоит из трех вертикальных полос синего, белого и красного цветов:

    Расчет размера файла

    Предположим, что размер французского флага составляет 200×133 пикселей.Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Соединенные Штаты Америки

    Флаг США довольно знаком:

    Таблица цветов такая же, как таблица цветов для французского флага: 3 разных цвета:

    Расчет размера файла

    Если изображение флага США было того же размера, что и флаг Франции,
    расчеты для размера файла будут идентичны .Почему?

    Предположим, что изображение флага США выше немного отличается в 200×105 пикселей.
    Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Другие примеры

    Мы можем продолжить это на многих примерах. Рассмотрим флаг
    Соединенное Королевство следующее: это также красный, белый и синий, поэтому он будет
    та же таблица цветов, что и флаги США и Франции, хотя дизайн
    достаточно разный:

    Рассмотрим флаг Италии:

    Как и французский флаг, он состоит из трех
    ровные вертикальные полосы.Мы
    нужно только изменить цветовую таблицу, чтобы изменить французский флаг на
    Итальянский флаг, если предположить, что размеры такие же:

    Это также верно для флагов Ирландии и Бельгии. Поскольку они
    все три цвета будут иметь одинаковую битовую глубину: два бита.

    Есть много флагов с тремя равными горизонтальными полосами (Германия,
    Боливия, Эстония, Венгрия и др.). Поскольку их всего три
    цвета, они также будут иметь разрядность в два бита.

    Расчет размера файла

    Все примеры трехцветных флагов имеют разрядность в два бита, поэтому
    единственное изменение в вычислении размера файла — это размерность .

    Гана

    Конечно, есть много флагов, у которых больше трех цветов.
    Рассмотрим флаг Ганы:

    Показаны все четыре цвета:

    Расчет размера файла

    Предположим, что размеры составляют 200×133 пикселей.
    Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Сейшельские острова

    Флаг Сейшельских островов пяти цветов:

    Расчет размера файла

    Предположим, что размеры составляют 200×100 пикселей.Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Белиз

    Самый красочный национальный флаг — это флаг Белиза, состоящий из двенадцати цветов:

    Расчет размера файла

    Предположим, что размеры составляют 200×133 пикселей.
    Рассчитать:

    1. битовая глубина,
    2. размер в байтах таблицы цветов,
    3. размер информации о цвете пикселей в байтах, и
    4. общий размер файла изображения в байтах.

    Заключение

    Представление GIF позволяет использовать до 256 цветов, что более чем
    достаточно для любого флага и для многих изображений, которые мы можем захотеть представить. Если мы
    нужно больше цветов, мы переходим к форматам PNG или JPEG.

    Не будем обсуждать флаг Непала, который не является прямоугольником:

    На самом деле, мы можем сделать флаг Непала с помощью GIF или PNG, потому что эти
    форматы позволяют прозрачность . Формат — прямоугольный эскиз.
    при этом некоторые пиксели обозначены как , прозрачные .Ты можешь
    подумайте об этом как о другом цвете в палитре, цвете, называемом
    «Чисто.»

    Введение: бит на пиксель и связанные идеи

    Терминология для форматов изображений может сбивать с толку, потому что часто существует несколько способов описания одного и того же формата. В этом разделе объясняется, что означают эти термины.

    Использование высоких битрейтов

    Преимущество использования изображений с высокой скоростью передачи данных заключается в том, что к изображению применяется обработка изображения, такая как выравнивание.Выравнивание сжимает или растягивает тональный диапазон изображения. Когда они выполняются на изображениях True Color, имеющих 256 оттенков на канал, могут возникнуть пробелы. Это называется постеризацией и проявляется в виде скачков или полос по цвету и яркости. При использовании 65 536 оттенков постеризация менее вероятна. Высокая скорость передачи данных также является преимуществом, когда представляют интерес мелкие детали изображения. Примером может служить медицинский образ. При поиске незрелых опухолей мелкие детали обрезаются или округляются в 8-битных изображениях на канал.

    1-битное изображение

    Если изображение имеет 1 бит на пиксель, оно также называется 1-битным изображением, черно-белым изображением, двухцветным изображением или битональным изображением. Два — это количество разных цветов, которые могут быть получены при использовании данных изображения в качестве 1-битных индексов палитры. Палитра может содержать другие цвета, кроме черного и белого, хотя чаще всего используются черный и белый.

    4-битное изображение

    Если изображение имеет 4 бита на пиксель, оно также называется 4-битным изображением или 16-цветным изображением.Шестнадцать — это количество различных цветов, которые могут быть получены при использовании данных изображения в качестве 4-битных индексов палитры.

    8-битное изображение

    Если изображение имеет 8 битов на пиксель, оно также называется 8-битным изображением или 256-цветным изображением. Двести пятьдесят шесть — это количество различных цветов, которое может быть достигнуто при использовании данных изображения в качестве 8-битных индексов для массива цветов, называемого палитрой.

    16-битное изображение

    Если изображение имеет размер 16 бит на пиксель, оно также называется 16-битным изображением, цветным изображением или цветным изображением 32K.Тридцать две тысячи — это примерно количество разных цветов, которые могут быть представлены 16 битами, где есть 5 бит для каждого из красного, зеленого и синего значений, 16-й бит может быть альфа-битом. (Устройства, которые определяют поддержку цвета 64K, также относятся к 16-битным изображениям, но они считают оставшийся бит.)

    24-битное изображение

    Если изображение имеет 24 бита на пиксель, оно также называется 24-битным изображением, полноцветным изображением или 16-мегапиксельным цветным изображением. Шестнадцать миллионов — это примерно количество разных цветов, которые могут быть представлены 24 битами, где есть 8 бит для каждого из значений красного, зеленого и синего (RGB).

    32-битный образ

    Есть два типа 32-битных изображений:

    • 32-битный CMYK в некоторой степени эквивалентен 24-битному RGB, где дополнительный байт содержит только информацию о цвете (дополнительная цветовая плоскость). Это специализированные полноцветные изображения, которые часто используются для цветной печати. LEADTOOLS по умолчанию преобразует значения CMYK в 24-битные значения RGB при загрузке этих изображений.
    • RGB + A — это 24-битное изображение RGB с дополнительным 8-битным альфа-каналом, обычно используемым для прозрачности.

    48-битное изображение

    48-битные изображения аналогичны 24-битным изображениям. У них есть три цветовых канала RGB, но по 16 бит на канал. Каждый канал поддерживает 65 536 оттенков цвета. Когда они объединены, изображение будет иметь 281,5 триллиона смешанных цветов.

    64-битный образ

    64-битных изображения похожи на 32-битные и 48-битные изображения. У них есть три 16-битных цветовых канала RGB и дополнительный 16-битный канал (альфа-канал), который обычно используется для информации о прозрачности

    Если изображение в оттенках серого, его красный, зеленый и синий значения одинаковы, а значения увеличиваются от наименьшего к наибольшему.Например, 8-битное изображение в градациях серого имеет 256 оттенков серого со значениями от 0 до 255. LEADTOOLS поддерживает 4, 8, 12, 16 и 32-битные черно-белые упорядоченные оттенки серого, обратные оттенки серого и неупорядоченные изображения в оттенках серого. . Поддержка 12-, 16- и 32-битных изображений в оттенках серого доступна только в Document / Medical.
    См. Раздел «Изображения в оттенках серого» для получения дополнительной информации.

    Пиксельные данные и палитры

    [Предыдущий]
    [Следующий]


    Очевидно, что значения пикселей, хранящиеся в файле, соответствуют цветам.Но как
    цвета на самом деле указаны?

    Однобитовые пиксельные данные, которые могут принимать значения 0 и 1, могут только полностью
    представляют собой изображения, содержащие два цвета. Таким образом, есть только два способа
    сопоставление значений пикселей в файле с цветами на экране. В большинстве
    ситуаций, вы обнаружите, что уже существует соглашение, устанавливающее, какие
    значение соответствует какому цвету, хотя отдельный механизм может быть
    доступны в файле, чтобы изменить это.Это определение также можно изменить на
    муха приложением для рендеринга.

    Пиксельные данные, состоящие из более чем одного бита на пиксель, обычно представляют собой набор
    из значений индекса в цветовую палитру ,

    хотя в некоторых случаях
    есть прямое числовое представление цвета в цвете
    Схема определения
    .

    Определение цвета с помощью палитр

    Палитра, которую иногда называют цветовой картой , индексной картой,
    таблица цветов,
    или справочная таблица (LUT) ,
    представляет собой одномерный массив
    значения цвета.В качестве синонима справочная таблица
    предполагает, что это
    краеугольный камень метода, согласно которому цвета могут быть косвенно обозначены
    указав их позиции в массиве. Используя этот метод, данные в файле могут быть
    хранятся в виде серии значений индекса, обычно небольших целочисленных значений, которые могут
    резко уменьшить размер данных пикселей, когда только небольшое количество
    цвета должны быть представлены. Растровые изображения с использованием этого метода цвета
    в представлении используется непрямых или псевдоцветных
    место хранения.

    Например, четырехбитные пиксельные данные могут использоваться для представления изображений, состоящих из
    16 цветов. Эти 16 цветов обычно определяются в палитре, которая почти
    всегда включается где-нибудь в файле. Каждое из значений пикселей, составляющих
    данные пикселей являются индексом в этой палитре и состоят из одного из значений
    От 0 до 15. Задача приложения визуализации — считывать и проверять значение пикселя.
    из файла, используйте его в качестве индекса в палитре и получите значение
    цвет из палитры, который затем используется для указания цветного пикселя на
    устройство вывода.

    На рис. 2-4 показано, как можно использовать палитру для задания цвета.

    Рисунок 2-4: Использование палитры для задания цвета

    Палитра — это максимально точно определенный набор цветов. В
    На практике каждый элемент палитры обычно имеет длину 24 бита или три байта,
    хотя, чтобы приспособиться к будущему расширению и зависимости от машин, каждый элемент
    иногда хранится как 32 бита или четыре байта.Любопытно, что цветные модели многие из
    которые существовали до компьютерной эры, часто построены на равных
    разделение возможных цветов на три переменные, таким образом аккуратно вписываясь в
    три байта хранения данных. (Мы включаем обсуждение цветовых моделей в
    раздел под названием «Цвет» далее в этой главе.)

    Это означает, что палитры в три или четыре раза больше, чем
    максимальное количество определенных цветов. Например, 4-битная цветовая палитра
    является:

     3 байта на цвет * 16 цветов = 48 байтов в длину
     

    или же:

     4 байта на цвет * 16 цветов = 64 байта в длину
     

    в зависимости от того, используются ли три или четыре байта для хранения каждого цвета
    определение.

    Аналогичным образом 8-битные пиксельные данные могут использоваться для представления изображений, состоящих из
    256 цветов. Каждое из значений пикселей в диапазоне от 0 до 255 является индексом в
    256-цветная палитра. В этом случае палитра будет:

     3 байта на цвет * 256 цветов = 768 байтов в длину
     

    или же:

     4 байта на цвет * 256 цветов = 1024 байта в длину
     

    Проблемы при использовании палитр

    Допустим, значение (255,0,0) представляет красный цвет в
    цветовая модель, используемая нашим форматом изображения.Мы позволим нашей палитре примера определить
    16 цветов, расположенных в виде массива из 16 элементов:

     (0, 0, 0)
    (255 255 255)
    (255, 0, 0)
    (0,255, 0)
    (0, 0,255)
    (255 255, 0)
    (0,255,255)
    (255, 0,255)
    (128, 0, 0)
    (0,128, 0)
    (0, 0,128)
    (128,128, 0)
    (0,128,128)
    (128, 0,128)
    (128 128 128)
    (255 128 128)
     

    Поскольку (255,0,0) оказывается третьим элементом в палитре, мы можем
    сохранить значение 2 (если массив отсчитывается от нуля, как в языке C), с
    подразумеваемое соглашение о том, что значения должны интерпретироваться как значения индекса в
    массив.Таким образом, каждый раз, когда спецификация красного цвета появляется в
    данные пикселей, вместо этого мы можем сохранить 2, и мы можем сделать
    то же самое и для других цветов изображения.

    Информация о цвете может занимать много места. В некоторых
    случаях использование палитр делает цвет
    более эффективное хранение; в других случаях сохранение цветов напрямую, а не
    через палитры, более эффективно.

    В более крупных и сложных форматах изображений косвенное хранение за счет использования
    палитры экономят место за счет уменьшения объема данных, хранящихся в файле.если ты
    используются, например, формат, в котором хранятся три байта информации о цвете.
    на пиксель (обычно используемый метод) и может использовать до 256 цветов, пиксель
    значения, составляющие растровое изображение изображения 320×200 пикселей, занимают 1

    (320 * 200 * 3) байтов памяти. Если в том же изображении вместо этого использовалась палитра с
    256 3-байтовых элементов, каждый пиксель в растровом изображении должен быть только одним
    байта, достаточного для хранения значения индекса карты цветов в
    Диапазон от 0 до 255.Это устраняет два из каждых трех байтов в каждом пикселе, уменьшая необходимое
    до 64000 (320 * 200 * 1) байт.

    Фактически, нам нужно добавить длину самой палитры, которая составляет 768 (256
    * 3) байты в длину, поэтому соответствующие данные в файле будут 64 768 байт.
    долго, что дает почти трехкратную экономию по сравнению с прежним способом хранения.
    (Обратите внимание, однако, что если объем данных растрового изображения в файле очень мал,
    накладные расходы на хранение, вызванные включением палитры, могут свести на нет любую экономию
    получено изменением способа хранения.)

    Непрямое сохранение цвета с помощью палитр имеет ряд преимуществ.
    помимо очевидного. Во-первых, если вам нужно знать, сколько фактических цветов
    хранится в изображении (т. е. 256-цветное изображение не всегда содержит 256
    цветов), это простая задача — прочитать палитру и определить, сколько
    его элементы используются или являются дубликатами других. Неиспользуемые элементы в
    для большинства форматов обычно установлено нулевое значение.

    Палитры также удобны, когда вы хотите изменить цвета изображения.если ты
    хотите изменить все красные пиксели визуализированного изображения на зеленые, для
    Например, все, что вам нужно сделать, это изменить соответствующее значение, определяющее цвет
    красный в палитре до соответствующего значения для зеленого.

    Как мы уже упоминали, использование палитр подходит не во всех случаях.
    Сама палитра занимает много места. Например,
    палитра, определяющая 32 768 цветов, займет минимум 98 304 байта
    пространство для хранения.По этой причине изображения, содержащие более 256 цветов, считаются
    обычно хранится в литерале ,
    absolute или truecolor

    формат (а не в палитрах), где каждому значению пикселя соответствует напрямую
    к единственному цвету.

    Палитры были разработаны для решения проблемы ограниченного количества цветов.
    доступно на некоторых устройствах отображения. Однако, если устройство вывода не обеспечивает
    аппаратная поддержка прикладного программного обеспечения, использование формата на основе палитры
    добавляет дополнительный уровень сложности перед появлением изображения на
    устройство отображения.Если устройство отображения может поддерживать истинный цвет, это может быть лучше
    использовать формат, поддерживающий истинный цвет, даже если изображение может иметь
    только несколько
    цвета. Как правило, изображения, содержащие тысячи или миллионы цветов
    лучше хранить в формате, поддерживающем истинный цвет, так как число и
    размер элементов, необходимых в формате на основе палитры, может привести к размеру
    палитра должна приближаться к размеру самих данных растрового изображения.

    Прежде чем мы продолжим обсуждение того, как цвета хранятся в файле, у нас есть
    сделаем небольшое отступление и поговорим о том, как определяются цвета.Обсуждение палитр
    возобновляется в разделе ниже под названием «… И вернуться к палитрам».

    Несколько слов о цветовых пространствах

    Цвета определяются путем указания нескольких, обычно трех, значений. Эти ценности
    указать количество каждого из набора основных цветов, иногда называемых
    цветовых каналов ,
    которые смешиваются для получения составных цветов. А
    композитный цвет
    затем указывается как упорядоченный набор значений. Если
    «упорядоченный набор значений» звонит вам в колокольчик (так же, как «упорядоченный набор значений»
    пара «), будьте уверены, это помогло и тем, кто создает цвета.
    определения.Говорят, что конкретный цвет представляет точку на графическом графике.
    всех возможных цветов. Из-за этого люди иногда называют цвет
    как точка в цветовом пространстве .

    RGB — это общее определение цвета. в
    Цветовая модель или система RGB, цвета красный, зеленый,
    и синий считаются фундаментальными и неразложимыми. Цвет может быть
    указывается путем предоставления триплета RGB в форме
    (R, G, B). Люди иногда думают о цветных тройнях как о
    проценты, хотя проценты на самом деле не используются для выражения
    фактические определения цвета.Вы можете охарактеризовать цвета в
    Цветовая модель RGB выглядит следующим образом:

    (0%, 0%, 0%) Черный
    (100%, 100%, 100%) Белый
    (100%, 0%, 0%) Красный
    (50%, 50%, 50%) Светло-серый

    и так далее.

    В этом есть много тонкостей, и всегда можно найти, с кем поспорить.
    о том, какие числа указывают какого цвета.Однако это основная идея. Каждый из
    Эти триплеты RGB определяют точку в цветовом пространстве RGB.

    При хранении данных о цвете в файле более практично указать значение
    каждый компонент цвета не в процентах, а в виде значения в заранее заданном
    диапазон. Если пространство, выделенное для каждого компонента цвета, составляет один байт (восемь бит),
    естественный диапазон — от 0 до 255. Поскольку цвета обычно определяются с использованием 24 бит,
    или трех байтов, естественно, что нужно присвоить каждому из трех байтов
    для использования в качестве значения цветового компонента в цветовой модели.В цвете RGB,
    например, используя три байта для каждого цвета, цвета обычно сохраняются как
    Триплеты RGB в диапазоне от 0 до 255, где 0 представляет нулевую интенсивность, а 255
    представляющий максимальную интенсивность.

     RGB = ([0-255], [0-255], [0-255])
     

    Таким образом, значения пикселей в предыдущем примере будут:

    (0,0,0) Черный
    (255,255,255) Белый
    (255,0,0) Красный
    (127 127 127) Светло-серый

    В этом примере, конечно, предполагается, что 0 означает наименьшую сумму,
    и 255 для максимального количества определенного цвета
    составная часть.Иногда вы обнаружите, что создатель формата или
    архитектор приложений извращенно решил инвертировать «естественный»
    смысл определения цвета и сделал RGB (0,
    0, 0) белый и RGB (255, 255, 255) черный, но,
    к счастью, такое бывает редко.

    Раздел далее в этой главе под названием «Как
    Представлены цвета »описывает RGB и
    другие цветовые системы.

    Еще о Truecolor

    Слово truecolor встречается в дискуссиях о
    изображения, содержащие большое количество цветов.Что мы подразумеваем под большим
    в контексте? Большинство людей считают, что от 200 до 300 тысяч
    большой. Напомним из обсуждения выше, что палитра, содержащая 256
    определение цвета использует максимум 64 байта памяти, и что
    палитра с 32 768 или более цветами использует как минимум около 100 тыс. цветов. В
    В свете этого 256 цветов — это не «большое» количество цветов. Большинство людей
    считают 32 768, 65 536 и 16,7 миллиона цветов «большими»,
    тем не мение. И это только пространство, которое занимает палитра; мы даже не
    речь о данных изображения!

    Вместо того, чтобы включать в файл огромную палитру, в которой значения пикселей
    индексы в палитре, значения пикселей можно рассматривать как буквальные
    значения цвета.На практике значения пикселей состоят из трех частей:
    и каждая часть представляет компонентный цвет в цвете
    модель
    (например, RGB)
    в использовании. Значения пикселей из изображений, содержащих 32 768 или 65 536 цветов.
    обычно хранятся в файле двумя последовательными байтами или 16 битами,
    потому что почти все машины обрабатывают данные минимум один байт в
    время. Приложение визуализации должно считывать эти 16-битные значения пикселей и
    разложите их на 5-битные значения компонентов цвета:

     16 бит = 2 байта = (8 бит, 8 бит) -> (1, 5, 5, 5) = (1, R, G, B)
     

    Каждый 5-битный компонент может иметь значения в диапазоне от 0 до 32.в
    случае 32768-цветных изображений RGB только 15 бит
    значительный, и один бит тратится впустую или используется для другого
    цель. 65 536-цветных изображений RGB разлагают
    16-битное значение пикселя асимметрично, как показано ниже, чтобы использовать
    из лишнего бита:

     16 бит = 2 байта = (8 бит, 8 бит) -> (6, 5, 5) = (R, G, B)
     

    На самом деле более распространенное подразделение:

     16 бит = 2 байта = (8 бит, 8 бит) -> (5, 6, 5) = (R, G, B)
     

    Здесь дополнительный бит дается зеленой составляющей, потому что человеческий глаз
    более чувствительна к зеленому, чем к красному и синему.Порядок цветовых компонентов
    является произвольным, а порядок и интерпретация цветовых компонентов в
    значение пикселя варьируется от формата к формату. Таким образом, компоненты 16-битного пикселя
    значение можно интерпретировать как (G, B, R) так же легко, как (R, G, B) и
    (B, R, G). Указание цветов RGB в последовательности (R, G, B) имеет некоторую привлекательность, потому что
    цвета располагаются по электромагнитной частоте, устанавливая их порядок в
    физический спектр.

    24-битные значения пикселей хранятся в трех байтах:

     24 бита = 3 байта = (8 бит, 8 бит, 8 бит) = (R, G, B)
     

    или четыре байта:

     24 бита = 4 байта = (8 бит, 8 бит, 8 бит, 8 бит) = (R, G, B, не используется)
     

    Равное разделение цветовых компонентов модели, по одному байту на каждый
    компонент, является наиболее распространенной схемой, хотя и другие подразделения не являются неслыханными
    из.

    … И обратно к палитрам

    Ранее в этой главе мы рассказали об использовании палитр. Здесь мы продолжаем
    с обсуждением различных типов палитр и иллюстрировать
    некоторые актуальные
    Примеры.

    Виды палитр

    О палитрах можно говорить по-разному.

    Палитра одноканальная
    содержит только одно значение цвета для каждого элемента, и
    это значение цвета отображается непосредственно на цвет одного пикселя.Каждый элемент
    одноканальная палитра может иметь, например, следующий вид:

     (Г) = (223)
     

    Многоканальная палитра (или многоканальная палитра )
    содержит два или более
    индивидуальные значения цвета для каждого цветового элемента. Каждый элемент 3-х канального
    палитра с использованием красного, зеленого и синего цветов может иметь, например, следующую форму:

     (R, G, B) = (255,128,78)
     

    Здесь R указывает значение одного канала, G указывает значение
    второй канал, а B указывает значение третьего канала.Если изображение
    содержит четыре цветовых компонента, как и в цветовой системе CMYK
    описана далее в этой главе, затем 4-канальная цветовая карта
    могут быть использованы и так далее.

    Пиксельно-ориентированные палитры хранят все данные о цвете пикселей в виде смежных битов.
    внутри каждого элемента массива. Как мы отметили выше, в палитре RGB каждый
    Элемент в палитре состоит из тройки значений. Это соответствует
    способ хранения значений пикселей в файле, который обычно находится в формате RGB или BGR
    заказывать:

     (RGBRGBRGBRGBRGB...)  или  (BGRBGRBGRBGRBGR ...)
     

    Таким образом палитра выглядит так:

     (RGB) (RGB) (RGB)  или  (BGR) (BGR) (BGR)
     

    В ориентированной на плоскость палитре компоненты цвета пикселей разделены;
    соответствующие значения цветового канала сохраняются вместе, и палитра выглядит
    как будто он состоит из трех одноканальных палитр, по одной для каждого цвета
    канал. Это соответствует способу расположения значений пикселей в файле.
    (я.е., в виде многоцветных плоскостей):

     (RRRRR ... GGGGG ... BBBBB)  или  (BBBBB ... GGGGG ... RRRRR)
     

    Таким образом, небольшая палитра может выглядеть так:

     (R) (R) (R) (G) (G) (G) (B) (B) (B)
     

    или же:

     (B) (B) (B) (G) (G) (G) (R) (R) (R)
     

    Хотя это может выглядеть как одна палитра, содержащая три цветовых плоскости, она
    обычно лучше всего визуализировать его как три отдельные палитры, каждая из которых содержит
    одноцветная плоскость.Таким образом, у вас не будет проблем с вызовом первого элемента в
    каждый элемент цветовой плоскости равен нулю.

    Из приведенного выше обсуждения должно быть ясно, что как одиночные, так и
    Многоканальные палитры могут быть пиксельными или плоскими. Например:

    • Одноканальная пиксельно-ориентированная палитра содержит одно значение пикселя на
      элемент.

    • Многоканальная пиксельно-ориентированная палитра также содержит один пиксель на элемент,
      но каждый пиксель содержит два или более цветовых канала данных.
    • Одноканальная плоскостная палитра содержит один пиксель на индекс и один
      бит на плоскость.

    • Многоканальная ориентированная на плоскость палитра содержит одно значение цветового канала на
      элемент.

    Рисунок 2-5 иллюстрирует эти различные типы палитр.

    Рисунок 2-5: Типы палитр

    Как отмечалось выше, количество элементов в палитре обычно является степенным.
    из двух и обычно соответствует максимальному количеству цветов
    содержится в изображении, что, в свою очередь, отражается в размере
    значение пикселя в файле.Например, значение 8-битного пикселя может
    представляют 256 различных цветов и сопровождается 256-элементным
    палитра. Если в изображении меньше цветов, чем максимальный размер
    палитра, любые неиспользуемые элементы в палитре в идеале будут установлены на
    нуль. Некоторые форматы, в первую очередь CGM и TGA, могут
    при необходимости варьируйте количество элементов в палитре. Если
    Изображение TGA содержит всего 57 цветов, например, оно
    может иметь только палитру из 57 элементов.

    Также интересно отметить, что используемые элементы в палитре не
    всегда прилегают друг к другу, не всегда упорядочены и не всегда запускаются
    с заполненным нулевым значением индекса.Двухцветное изображение с 256-цветной палитрой.
    (да, это было сделано), его цвета могут быть проиндексированы в точках 0 и 1, 0 и
    255, 254 и 255 или даже 47 и 156. Расположение определяется
    программное обеспечение, записывающее файл изображения, и, следовательно, в конечном итоге программист, который
    создал программное приложение. (Мы предпочитаем не комментировать дальше.)

    Примеры палитр

    Давайте посмотрим на несколько примеров палитр. Самый простой — двухцветный, или
    монохромный, палитра:

     / * БАЙТ - это 8-битный символ * /
    typedef struct _MonoPalette
    {
    БАЙТ Цвет [2];
    } MONO_PALETTE;
    MONO_PALETTE Mono = {{0x00, 0x01}};
     

    В этом примере мы видим двухэлементный массив, содержащий значения цвета 0x00 и
    0x01 в элементах 0 и 1 соответственно.В файле все значения пикселей
    индексы. Пиксель со значением 0 служит индексом цвета, представленного
    значение 0x00. Точно так же пиксель со значением 1 служит индексом для цвета.
    представлен значением 0x01. Поскольку это растровое изображение содержит только два цвета,
    и каждый цвет пикселя может быть представлен одним битом, может показаться, что проще
    хранить эти значения непосредственно в растровом изображении как битовые значения, а не использовать
    палитра. Это, конечно, проще, но некоторые форматы только с палитрой требуют, чтобы
    этот тип палитры присутствует даже в монохромных растровых изображениях.

    Это более практичный пример, палитра из 16 элементов, используемая для отображения шкалы серого.
    палитра:

     / * БАЙТ - это 8-битный символ * /
    typedef struct _GrayPalette
    {
    БАЙТ Цвет [16];
    } GRAY_PALETTE;
    GRAY_PALETTE Серый =
    {
    {0x00,
    0x14,
    0x20,
    0x2c,
    0x38,
    0x45,
    0x51,
    0x61,
    0x71,
    0x82,
    0x92,
    0x92,
    0xa2,
    0xb6,
    0xcb,
    0xe3,
    0xff}
    };
     

    Обратите внимание, что в этих двух примерах каждый цветовой элемент представлен
    одно значение, поэтому это одноканальная палитра.Мы могли бы так же легко использовать
    3-канальная палитра, представляющая каждый элемент серого цвета по его значению RGB.

     typedef struct _RGB
    {
    БАЙТ красный; / * Значение красного канала * /
    БАЙТ зеленый; / * Значение зеленого канала * /
    BYTE Blue; / * Значение синего канала * /
    } RGB;
    Серый RGB [16] =
    {
    {0x00, 0x00, 0x00},
    {0x14, 0x14, 0x14},
    {0x20, 0x20, 0x20},
    {0x2c, 0x2c, 0x2c},
    {0x38, 0x38, 0x38},
    {0x45, 0x45, 0x45},
    {0x51, 0x51, 0x51},
    {0x61, 0x61, 0x61},
    {0x71, 0x71, 0x71},
    {0x82, 0x82, 0x82},
    {0x92, 0x92, 0x92},
    {0xa2, 0xa2, 0xa2},
    {0xb6, 0xb6, 0xb6},
    {0xcb, 0xcb, 0xcb},
    {0xe3, 0xe3, 0xe3},
    {0xff, 0xff, 0xff}
    };
     

    Этот последний пример является примером пиксельно-ориентированной многоканальной палитры.Мы
    может изменить его, чтобы сохранить информацию о цвете в плоскостном режиме, например
    это:

     TYPEDEF struct _PlanePalette
    {
    БАЙТ красный [16]; / * Значения красной плоскости * /
    БАЙТ зеленый [16]; / * Значения зеленой плоскости * /
    BYTE Blue [16]; / * Значения синей плоскости * /
    } PLANE_PALETTE;
    PLANE_PALETTE Самолеты =
    {
    {0x00, 0x14, 0x20, 0x2c, 0x38, 0x45, 0x51, 0x61, / * Красный самолет * /
    0x71, 0x82, 0x92, 0xa2, 0xb6, 0xcb, 0xe3, 0xff},
    {0x00, 0x14, 0x20, 0x2c, 0x38, 0x45, 0x51, 0x61, / * Зеленая плоскость * /
    0x71, 0x82, 0x92, 0xa2, 0xb6, 0xcb, 0xe3, 0xff},
    {0x00, 0x14, 0x20, 0x2c, 0x38, 0x45, 0x51, 0x61, / * Синяя плоскость * /
    0x71, 0x82, 0x92, 0xa2, 0xb6, 0xcb, 0xe3, 0xff}
    };
     

    Наконец, давайте посмотрим на реальный пример, палитру IBM VGA.

    в широком использовании.Эта 256-цветная палитра содержит 16-цветную субпалитру («палитру EGA»),
    16-элементная полутоновая палитра и палитра из 24 цветов, по девять в каждой.
    разные вариации насыщенности и интенсивности. Обратите внимание, что последние восемь
    элементы палитры не используются и поэтому обнуляются:

     struct _VgaPalette
    {
    БАЙТ красный;
    БАЙТ зеленый;
    BYTE Blue;
    } VGA_PALETTE;
    VGA_PALETTE VgaColors [256] =
    {
    / * Таблица цветов EGA * /
    {0x00, 0x00, 0x00}, {0x00, 0x00, 0xaa},
    {0x00, 0xaa, 0x00}, {0x00, 0xaa, 0xaa},
    {0xaa, 0x00, 0x00}, {0xaa, 0x00, 0xaa},
    {0xaa, 0x55, 0x00}, {0xaa, 0xaa, 0xaa},
    {0x55, 0x55, 0x55}, {0x55, 0x55, 0xff},
    {0x55, 0xff, 0x55}, {0x55, 0xff, 0xff},
    {0xff, 0x55, 0x55}, {0xff, 0x55, 0xff},
    {0xff, 0xff, 0x55}, {0xff, 0xff, 0xff},
    / * Таблица шкалы серого * /
    {0x00, 0x00, 0x00}, {0x14, 0x14, 0x14},
    {0x20, 0x20, 0x20}, {0x2c, 0x2c, 0x2c},
    {0x38, 0x38, 0x38}, {0x45, 0x45, 0x45},
    {0x51, 0x51, 0x51}, {0x61, 0x61, 0x61},
    {0x71, 0x71, 0x71}, {0x82, 0x82, 0x82},
    {0x92, 0x92, 0x92}, {0xa2, 0xa2, 0xa2},
    {0xb6, 0xb6, 0xb6}, {0xcb, 0xcb, 0xcb},
    {0xe3, 0xe3, 0xe3}, {0xff, 0xff, 0xff},
    / * 24-цветный стол * /
    {0x00, 0x00, 0xff}, {0x41, 0x00, 0xff},
    {0x7d, 0x00, 0xff}, {0xbe, 0x00, 0xff},
    {0xff, 0x00, 0xff}, {0xff, 0x00, 0xbe},
    {0xff, 0x00, 0x7d}, {0xff, 0x00, 0x41},
    {0xff, 0x00, 0x00}, {0xff, 0x41, 0x00},
    {0xff, 0x7d, 0x00}, {0xff, 0xbe, 0x00},
    {0xff, 0xff, 0x00}, {0xbe, 0xff, 0x00},
    {0x7d, 0xff, 0x00}, {0x41, 0xff, 0x00},
    {0x00, 0xff, 0x00}, {0x00, 0xff, 0x41},
    {0x00, 0xff, 0x7d}, {0x00, 0xff, 0xbe},
    {0x00, 0xff, 0xff}, {0x00, 0xbe, 0xff},
    {0x00, 0x7d, 0xff}, {0x00, 0x41, 0xff},
    {0x7d, 0x7d, 0xff}, {0x9e, 0x7d, 0xff},
    {0xbe, 0x7d, 0xff}, {0xdf, 0x7d, 0xff},
    {0xff, 0x7d, 0xff}, {0xff, 0x7d, 0xdf},
    {0xff, 0x7d, 0xbe}, {0xff, 0x7d, 0x9e},
    {0xff, 0x7d, 0x7d}, {0xff, 0x9e, 0x7d},
    {0xff, 0xbe, 0x7d}, {0xff, 0xdf, 0x7d},
    {0xff, 0xff, 0x7d}, {0xdf, 0xff, 0x7d},
    {0xbe, 0xff, 0x7d}, {0x9e, 0xff, 0x7d},
    {0x7d, 0xff, 0x7d}, {0x7d, 0xff, 0x9e},
    {0x7d, 0xff, 0xbe}, {0x7d, 0xff, 0xdf},
    {0x7d, 0xff, 0xff}, {0x7d, 0xdf, 0xff},
    {0x7d, 0xbe, 0xff}, {0x7d, 0x9e, 0xff},
    {0xb6, 0xb6, 0xff}, {0xc7, 0xb6, 0xff},
    {0xdb, 0xb6, 0xff}, {0xeb, 0xb6, 0xff},
    {0xff, 0xb6, 0xff}, {0xff, 0xb6, 0xeb},
    {0xff, 0xb6, 0xdb}, {0xff, 0xb6, 0xc7},
    {0xff, 0xb6, 0xb6}, {0xff, 0xc7, 0xb6},
    {0xff, 0xdb, 0xb6}, {0xff, 0xeb, 0xb6},
    {0xff, 0xff, 0xb6}, {0xeb, 0xff, 0xb6},
    {0xdb, 0xff, 0xb6}, {0xc7, 0xff, 0xb6},
    {0xb6, 0xdf, 0xb6}, {0xb6, 0xff, 0xc7},
    {0xb6, 0xff, 0xdb}, {0xb6, 0xff, 0xeb},
    {0xb6, 0xff, 0xff}, {0xb6, 0xeb, 0xff},
    {0xb6, 0xdb, 0xff}, {0xb6, 0xc7, 0xff},
    {0x00, 0x00, 0x71}, {0x1c, 0x00, 0x71},
    {0x38, 0x00, 0x71}, {0x55, 0x00, 0x71},
    {0x71, 0x00, 0x71}, {0x71, 0x00, 0x55},
    {0x71, 0x00, 0x38}, {0x71, 0x00, 0x1c},
    {0x71, 0x00, 0x00}, {0x71, 0x1c, 0x00},
    {0x71, 0x38, 0x00}, {0x71, 0x55, 0x00},
    {0x71, 0x71, 0x00}, {0x55, 0x71, 0x00},
    {0x38, 0x71, 0x00}, {0x1c, 0x71, 0x00},
    {0x00, 0x71, 0x00}, {0x00, 0x71, 0x1c},
    {0x00, 0x71, 0x38}, {0x00, 0x71, 0x55},
    {0x00, 0x71, 0x71}, {0x00, 0x55, 0x71},
    {0x00, 0x38, 0x71}, {0x00, 0x1c, 0x71},
    {0x38, 0x38, 0x71}, {0x45, 0x38, 0x71},
    {0x55, 0x38, 0x71}, {0x61, 0x38, 0x71},
    {0x71, 0x38, 0x71}, {0x71, 0x38, 0x61},
    {0x71, 0x38, 0x55}, {0x71, 0x38, 0x45},
    {0x71, 0x38, 0x38}, {0x71, 0x45, 0x38},
    {0x71, 0x55, 0x38}, {0x71, 0x61, 0x38},
    {0x71, 0x71, 0x38}, {0x61, 0x71, 0x38},
    {0x55, 0x71, 0x38}, {0x45, 0x71, 0x38},
    {0x38, 0x71, 0x38}, {0x38, 0x71, 0x45},
    {0x38, 0x71, 0x55}, {0x38, 0x71, 0x61},
    {0x38, 0x71, 0x71}, {0x38, 0x61, 0x71},
    {0x38, 0x55, 0x71}, {0x38, 0x45, 0x71},
    {0x51, 0x51, 0x71}, {0x59, 0x51, 0x71},
    {0x61, 0x51, 0x71}, {0x69, 0x51, 0x71},
    {0x71, 0x51, 0x71}, {0x71, 0x51, 0x69},
    {0x71, 0x51, 0x61}, {0x71, 0x51, 0x59},
    {0x71, 0x51, 0x51}, {0x71, 0x59, 0x51},
    {0x71, 0x61, 0x51}, {0x71, 0x69, 0x51},
    {0x71, 0x71, 0x51}, {0x69, 0x71, 0x51},
    {0x61, 0x71, 0x51}, {0x59, 0x71, 0x51},
    {0x51, 0x71, 0x51}, {0x51, 0x71, 0x59},
    {0x51, 0x71, 0x61}, {0x51, 0x71, 0x69},
    {0x51, 0x71, 0x71}, {0x51, 0x69, 0x71},
    {0x51, 0x61, 0x71}, {0x51, 0x59, 0x71},
    {0x00, 0x00, 0x41}, {0x10, 0x00, 0x41},
    {0x20, 0x00, 0x41}, {0x30, 0x00, 0x41},
    {0x41, 0x00, 0x41}, {0x41, 0x00, 0x30},
    {0x41, 0x00, 0x20}, {0x41, 0x00, 0x10},
    {0x41, 0x00, 0x00}, {0x41, 0x10, 0x00},
    {0x41, 0x20, 0x00}, {0x41, 0x30, 0x00},
    {0x41, 0x41, 0x00}, {0x30, 0x41, 0x00},
    {0x20, 0x41, 0x00}, {0x10, 0x41, 0x00},
    {0x00, 0x41, 0x00}, {0x00, 0x41, 0x10},
    {0x00, 0x41, 0x20}, {0x00, 0x41, 0x30},
    {0x00, 0x41, 0x41}, {0x00, 0x30, 0x41},
    {0x00, 0x20, 0x41}, {0x00, 0x10, 0x41},
    {0x20, 0x20, 0x41}, {0x28, 0x20, 0x41},
    {0x30, 0x20, 0x41}, {0x38, 0x20, 0x41},
    {0x41, 0x20, 0x41}, {0x41, 0x20, 0x38},
    {0x41, 0x20, 0x30}, {0x41, 0x20, 0x28},
    {0x41, 0x20, 0x20}, {0x41, 0x28, 0x20},
    {0x41, 0x30, 0x20}, {0x41, 0x38, 0x20},
    {0x41, 0x41, 0x20}, {0x38, 0x41, 0x20},
    {0x30, 0x41, 0x20}, {0x28, 0x41, 0x20},
    {0x20, 0x41, 0x20}, {0x20, 0x41, 0x28},
    {0x20, 0x41, 0x30}, {0x20, 0x41, 0x38},
    {0x20, 0x41, 0x41}, {0x20, 0x38, 0x41},
    {0x20, 0x30, 0x41}, {0x20, 0x28, 0x41},
    {0x2c, 0x2c, 0x41}, {0x30, 0x2c, 0x41},
    {0x34, 0x2c, 0x41}, {0x3c, 0x2c, 0x41},
    {0x41, 0x2c, 0x41}, {0x41, 0x2c, 0x3c},
    {0x41, 0x2c, 0x34}, {0x41, 0x2c, 0x30},
    {0x41, 0x2c, 0x2c}, {0x41, 0x30, 0x2c},
    {0x41, 0x34, 0x2c}, {0x41, 0x3c, 0x2c},
    {0x41, 0x41, 0x2c}, {0x3c, 0x41, 0x2c},
    {0x34, 0x41, 0x2c}, {0x30, 0x41, 0x2c},
    {0x2c, 0x41, 0x2c}, {0x2c, 0x41, 0x30},
    {0x2c, 0x41, 0x34}, {0x2c, 0x41, 0x3c},
    {0x2c, 0x41, 0x41}, {0x2c, 0x3c, 0x41},
    {0x2c, 0x34, 0x41}, {0x2c, 0x30, 0x41},
    {0x00, 0x00, 0x00}, {0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00}, {0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00}, {0x00, 0x00, 0x00},
    {0x00, 0x00, 0x00}, {0x00, 0x00, 0x00}
    };
     

    [Предыдущий]
    [Следующий]

    Эта страница взята из Энциклопедии
    форматов графических файлов и имеет лицензию O’Reilly
    по лицензии Creative Common / Attribution.

    Руководство по растровым изображениям для начинающих

    Автор Пол Бурк
    Визуализация и модели Питера Дипроуза и Билла Раттенбери
    Оригинал, ноябрь 1993 г.

    Перевод на итальянский осуществляется theunbiasedreviews.com и Boutiquesetup.com

    Перевод на португальский язык Артура Вебера и Аделины Домингос

    Украинский перевод предоставил Дмутро Нечупорык

    Введение

    Этот документ должен служить элементарным введением в растровые изображения.
    поскольку они используются в компьютерной графике.

    Определение

    Растровые изображения определяются как регулярная прямоугольная сетка ячеек, называемых пикселями, каждая
    пиксель, содержащий значение цвета. Они характеризуются всего двумя параметрами:
    количество пикселей и информационное наполнение (глубина цвета) на пиксель.
    Есть и другие атрибуты, которые применяются к растровым изображениям, но они являются производными
    этих двух основных параметров.

    Обратите внимание, что растровые изображения всегда ориентированы горизонтально и вертикально. Пикселей
    следует считать квадратными, хотя они могут иметь другие соотношения сторон в
    упражняться.
    В большинстве случаев растровые изображения используются для представления изображений на
    компьютер. Например, следующее растровое изображение имеет 397 пикселей.
    по горизонтали, 294 пикселя по вертикали, и каждый пиксель содержит серый
    значение из 256 возможных оттенков серого.

    Цвет «глубина»

    Каждый пиксель в растровом изображении содержит определенную информацию, обычно интерпретируемую как
    информация о цвете. Информационное наполнение всегда одинаково для всех
    пикселей в конкретном растровом изображении. Количество цветовой информации может быть
    все, что требуется приложению, но есть стандарты, основные
    описаны ниже.

    1 бит (черно-белый)

    Это минимально возможное информационное содержание, которое может храниться для каждого
    пиксель. Полученное растровое изображение считается монохромным или черно-белым. В
    пиксели с 0 обозначаются как черные, пиксели с 1 обозначаются как
    белый. Обратите внимание: хотя возможны только два состояния, их можно интерпретировать
    как любые два цвета, 0 отображается на один цвет, 1 отображается на другой
    цвет.

    8-битный серый

    В этом случае каждый пиксель занимает 1 байт (8 бит) памяти, в результате получается 256
    разные состояния.Если эти состояния отображаются на градиенте серого от черного до
    white растровое изображение обозначается как изображение в оттенках серого. По соглашению 0
    обычно черный и 255 белый. Уровни серого — это числа между ними, для
    Например, в линейной шкале 127 будет уровень серого 50%.

    В любом конкретном приложении диапазон значений серого может быть любым, это
    чаще всего отображают уровни 0-255 на шкале 0-1, но некоторые программы отображают
    по шкале 0-65535 (см. систему цветовой спецификации яблок как
    пример).

    24-битный RGB

    Это следующий шаг от 8-битного серого, теперь каждому выделено 8 бит.
    красный, зеленый и синий компоненты. В каждом компоненте значение 0 означает отсутствие
    вклад этого цвета, 255 относится к полностью насыщенному вкладу этого цвета
    цвет. Поскольку каждый компонент имеет 256 различных состояний, всего имеется
    16777216 возможных цветов.

    Идея цветового пространства RGB является фундаментальной концепцией компьютерной графики. В
    Пространство RGB любой цвет представлен как точка внутри цветового куба с
    ортогональные оси r, g, b.

    Обратите внимание, что значения серого образуют прямую линию от черного к белому вдоль
    диагональ куба, r = g = b.

    8-битный индексированный цвет

    Индексированный цвет — это более экономичный способ хранения цветных растровых изображений без использования
    3 байта на пиксель. Как и в случае с 8-битными серыми растровыми изображениями, каждый пиксель имеет один байт.
    связанный с ним, только теперь значение в этом байте больше не является значением цвета
    но указатель в таблице цветов, называемой палитрой или таблицей цветов.

    У такой системы цветовой индексации есть ряд интересных атрибутов.Если в изображении меньше 256 цветов, то это растровое изображение будет
    такое же качество, как и 24-битное растровое изображение, но оно может быть сохранено с одной третью данных.
    Интересные эффекты окраски и анимации можно получить, просто изменив
    палитры, это немедленно изменяет внешний вид растрового изображения и с
    тщательный дизайн может привести к преднамеренному изменению внешнего вида
    битовая карта.

    Распространенной операцией по уменьшению размера больших 24-битных растровых изображений является преобразование
    их к индексированному цвету с оптимизированной палитрой, то есть палитрой, которая лучше всего
    представляет цвета, доступные в растровом изображении.

    4-битный индексированный цвет

    Это идентично 8-битному цвету, за исключением того, что теперь используется только половина байта, 4 бита.
    для индекса. Это поддерживает таблицу до 16 цветов.

    32-битный RGB

    Обычно это то же самое, что и 24-битный цвет, но с известным дополнительным 8-битным растровым изображением.
    как альфа-канал. Этот канал можно использовать для создания маскированных областей или
    представляют собой прозрачность.

    16 бит RGB

    Обычно это прямая система с 5 битами на компонент цвета.
    и 1-битный альфа-канал.

    Разрешение

    Разрешение — это атрибут растрового изображения, который необходим при визуальном просмотре.
    или печать растровых изображений, потому что сами по себе пиксели не имеют явных размеров.
    Разрешение обычно указывается в пикселях на дюйм, но может быть выражено в
    любая другая единица измерения. Большинство процессов печати сохраняют количество пикселей на дюйм
    (DPI) единиц по историческим причинам. На устройствах с nn прямоугольных пикселей
    разрешение может быть указано двумя числами: по горизонтали и по вертикали.
    разрешающая способность.

    Концепция разрешения, независимого от информационного содержания
    растровое изображение очень важно, учитывая постоянную глубину цвета, тогда информация
    содержимое между разными растровыми изображениями зависит только от количества пикселей
    вертикально и горизонтально. Однако качество при отображении растрового изображения
    или напечатано зависит от разрешения. Поскольку разрешение определяет
    размером пикселя, его также можно использовать для изменения размера всего изображения.

    В качестве примера рассмотрим одно растровое изображение размером 200 пикселей по горизонтали и 100 пикселей.
    пикселей по вертикали.Если бы это растровое изображение было напечатано с разрешением 100DPI, оно бы измеряло 2
    дюймы на 1 дюйм. Если, однако, то же растровое изображение было напечатано с разрешением 200 точек на дюйм, то оно
    будет измерять только 1 дюйм на полдюйма.

    Всякий раз, когда растровое изображение отображается на мониторе компьютера, разрешение должно быть
    считается. Большинство компьютерных мониторов имеют диапазон разрешения от 60 точек на дюйм при максимальном разрешении.
    конец низкого разрешения до 120 точек на дюйм для дисплеев с высоким разрешением. Как и в случае с печатным
    имеет значение, чем выше разрешение, тем менее очевиден пиксельный характер изображения.
    растровое изображение будет.

    В качестве дополнительного примера следующие два изображения идентичны по информации.
    контента, однако они имеют разное разрешение и, следовательно, разные пиксели
    размеры. Меньший — 80 точек на дюйм, а больший — 30 точек на дюйм. Пикселей намного больше
    очевидно в более крупной версии.

    Когда дело доходит до представления растровых изображений на физических носителях, это еще не все.
    устройства, потому что разные устройства имеют разную глубину цвета.

    Преобразование глубины цвета.

    Очень часто возникает необходимость представить растровое изображение с одной глубиной цвета на
    устройство с различными возможностями глубины цвета.Конечно, если пункт назначения
    устройство имеет лучший цвет, чем растровое изображение, поэтому проблем нет, так как
    растровое изображение может быть точно представлено. В обратной ситуации, когда
    назначение имеет другие и более низкие возможности, то растровое изображение должно быть
    преобразован во что-то, что дает наилучшее представление.

    В качестве примера рассмотрим проблему представления изображений в градациях серого на
    монохромные (черно-белые) устройства. Это достигается с помощью переменной
    количество черных и белых пикселей для представления уровня серого.К счастью,
    черно-белое устройство обычно имеет гораздо более высокое разрешение, чем растровое изображение, поэтому
    доступно несколько пикселей для создания приближения шкалы серого.
    Рассмотрим растровое изображение в градациях серого 75 точек на дюйм, которое будет отображаться на черно-белом фоне с разрешением 300 точек на дюйм.
    принтер. Имеется матрица из чёрно-белых пикселей 4х4, которую можно использовать для
    представляют каждый пиксель шкалы серого.

    Существует ряд методов, которые можно использовать для формирования соответствующих
    При расположении черных и белых пикселей один из приемов называется дизерингом.Четный
    с использованием дизеринга существует множество возможных алгоритмов определения дизеринга.
    расположение пикселей. Ниже показано изменение уровня серого с
    соответствующие черно-белые примеры с дизерингом (сильно увеличены) с использованием
    паттерн и диффузное дизеринг.

    Как уже упоминалось, существуют и другие методы преобразования растровых изображений высокого разрешения.
    глубину цвета в цвета с меньшей глубиной цвета, но с более высоким разрешением, на таких
    Техника, используемая в полиграфической промышленности, называется растрированием. Скрининг не будет
    будет обсуждаться здесь, за исключением того, что он приближает уровни серого по
    размер объектов (размер объекта пропорционален уровню серого)
    объекты расположены в регулярной матрице, которая находится под некоторым углом к
    горизонтальный.Наиболее часто используемые объекты изображения — это точки, линии и
    прямоугольники. Ниже показано изменение уровня серого с соответствующим черным
    и примеры с белым экраном (сильно увеличенные) с использованием точечного и линейного экранов.

    Вышеупомянутое обсуждение и примеры преобразования глубины цвета были сделаны.
    относительно изображений в оттенках серого. Преобразование изображений с высокой глубиной цвета в изображения с низкой
    представления глубины цвета не отличаются по своей концепции, как правило, процесс
    просто выполняется трижды, по одному для каждой цветовой составляющей.

    Хранилище растровых изображений

    Самый простой способ сохранить растровое изображение — просто перечислить растровое изображение
    информация, байт за байтом, строка за строкой. Файлы, хранящиеся этим методом, часто
    называется файлами RAW. Объем дискового хранилища, необходимый для любого растрового изображения, легко определить.
    вычислить с учетом размеров растрового изображения (N x M) и глубины цвета в битах (B).
    Формула размера файла в килобайтах:

    где N и M — количество пикселей по горизонтали и вертикали, B — количество пикселей.
    бит на пиксель.В следующей таблице показаны размеры файлов нескольких растровых изображений.
    типы, если они хранятся в формате RAW.

     размер изображения глубина цвета размер файла
        128 x 128 1 бит 2 КБ
                              8 бит 16 КБ
                             24 бит 48 КБ
        256 x 256 1 бит 8 КБ
                              8 бит 64 КБ
                             24 бит 192 КБ
         1K x 1K 1 бит 128 КБ
                              8 бит 1 МБ
                             24 бита 3 МБ
     

    Как видно из этой таблицы, большие 24-битные изображения приводят к очень большим
    файлов, поэтому сжатие становится важным.Существует большое количество форматов файлов, используемых для хранения сжатых растровых изображений.
    от банального до очень сложного. Сложные форматы существуют, потому что
    очень больших файлов растровых изображений, которые существовали бы, если бы не использовалось сжатие.
    Существует две большие категории форматов сжатых файлов:
    без потерь (отлично сохраняют растровые изображения) и с потерями. В
    Ниже показана основная иерархия методов сжатия.

    Самый грубый способ уменьшить размер файлов растровых изображений — уменьшить цвет
    информации, это называется сокращением битов или квантованием.Например один
    мог преобразовать 24-битные растровые изображения в 8-битные индексированные растровые изображения, используя дизеринг для
    имитировать потерянные цвета. Самым распространенным форматом с потерями на сегодняшний день является JPEG,
    описание того, как это работает, выходит за рамки этого обсуждения. Его
    Основным преимуществом является то, что он может предложить значительно лучшую степень сжатия, чем
    форматы без потерь. Например, считайте следующее растровое изображение оригиналом
    что составляет 500 x 350 пикселей при 24-битном цвете. Используя формулу, приведенную ранее,
    размер несжатого файла: 500 x 350 x 24/8/1024 = 513K

    Сохраненный в оттенках серого (уменьшение глубины цвета) файл имеет размер 171K (в 3 раза меньше),
    сохранены и сжаты с использованием
    RLE это 388 КБ (75% от оригинала), сохранено с помощью
    Сжатие LZW составляет 188 КБ (36% от оригинала), при сохранении в формате JPEG — 30 КБ (
    степень сжатия 17: 1).
    Ниже приводится описание простейшего метода сжатия без потерь.
    называется кодированием длины серии
    (RLE), который используется с хорошим эффектом для растровых изображений с
    всего несколько цветов. Рассмотрим следующее маленькое 8-битное изображение 17 x 10 пикселей.

    Если бы это было сохранено в формате RAW, ему потребовалось бы 16 байтов на строку для всех 10
    ряды. Однако первые две строки находятся на одном уровне, поэтому они более эффективны.
    просто сохранить количество одинаковых цветов в серии вместе с цветом серии.
    Для первых двух строк вместо 16 байтов требуется только 2 байта каждая.

    В исходном формате первые три строки будут

    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
     

    Используя кодировку длины серии, первые три строки будут

    16 0
    16 0
    2 0 12 1 2 0
     

    Хотя в фактических реализациях
    RLE, чем
    описанный здесь, это основной принцип кодирования длин серий. Чтобы
    для достижения некоторой степени сжатия RLE должны выполняться прогоны
    того же цвета, по этой причине он вряд ли пригодится для сильно окрашенных
    изображения, такие как 24-битные фотографии.

    бит в растровые изображения: простое пошаговое руководство по формату изображения BMP | Удай Хиварале | Системный сбой

    С этого момента мы будем использовать термин BMP для указания формата растрового изображения без какого-либо сжатия.

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

    Обычный текстовый файл содержит только текст ( без стилей или метаданных файла ).Каждый символ текста представлен своей кодовой точкой ( — десятичное число, присвоенное каждому символу ). Таким образом, при просмотре текстового файла в двоичном формате все двоичные числа представляют только символы.

    Я подробно объяснил текстовый файл, кодировку символов, кодовую точку и двоичное представление в этой статье .

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

    Формат файла BMP содержит различные разделы, которые содержат информацию о метаданных , цветовом палитре и фактических пиксельных данных .

    (структура файла BMP)

    На этом изображении мы видим 4-х блоков , предназначенных для представления каждой отдельной информации об изображении. Когда анализатор изображений (, например, программа просмотра изображений или браузер ) считывает изображение BMP, он считывает все эти блоки и создает изображение для отображения на экране.

    Давайте разберемся в роли каждого из этих блоков.

    Блок 1: данные типа файла

    Этот блок представляет собой заголовок BMP , помеченный как BITMAPFILEHEADER ( имя происходит от c ++ структура) в Windows OS struct. Это начальная точка файла BMP, его ширина составляет 14 байтов и байтов. Этот заголовок содержит всего 5 полей переменной ширины в байтах.Они указаны в таблице ниже.

    ( BITMAPFILEHEADER Fields )

    Следует помнить, что BMP использует систему с прямым порядком байтов для хранения числа ( целое число или с плавающей запятой), когда число больше 1-байта .

    Например, 312 десятичное значение в 2-байтовом двоичном формате — это 00000001 00111000 , а его шестнадцатеричное представление байта 0x01 0x38 . Аналогично, в 4-байтах это 00000000 00000000 00000001 00111000 или 0x00 0x00 0x01 0x38 .

    Но в системе с прямым порядком байтов ( в современных компьютерах ) младший байт (младший бит) сохраняется первым. Следовательно, десятичное значение 312 в шестнадцатеричном представлении будет 0x38 0x01 0x00 0x00 , а BMP создаст двоичное значение, подобное RHS: 0x38 <- 0x01 <- 0x00 <- 0x00: LHS .

    Я подробно объяснил систему с прямым порядком байтов и с прямым порядком байтов в этой статье , и это то, что стоит проверить.

    Блок 2: данные информации об изображении

    Это заголовок DIB , который должен использоваться для указания информации о цвете и изображении . В отличие от BITMAPFILEHEADER , существует множество типов заголовков info ( указано на Wiki , страница ). Каждый заголовок имеет разную ширину байтов , но по соображениям совместимости мы используем BITMAPINFOHEADER .

    Этот заголовок имеет длину 40 байт и ширину и содержит всего 11 полей переменной ширины в байтах.Они указаны в таблице ниже.

    ( BITMAPINFOHEADER Fields )

    Блок 3: Цветовая палитра

    (частично необязательно)

    Этот блок содержит список цветов, которые будут использоваться пикселем. Это индексированная таблица с индексом, начинающимся с 0 . Целочисленное значение пикселя указывает на индекс цвета в этой таблице, и этот цвет печатается на экране.

    Однако этот блок является обязательным, если BitsPerPixel на меньше или равно 8 , следовательно, этот блок является полуобязательным .Когда BitsPerPixel равен 16 , 24 или 32 , значение цвета пикселя вычисляется из комбинации отдельных значений Blue , Green и Red , определенных пикселем.

    Следовательно, 1 , 4 и 8 изображений BMP с глубиной цвета называются паллетизированными изображениями , а каждый отдельный пиксель изображения называется паллетизированными пикселями.

    В приведенной ниже таблице содержится информация о максимально возможных цветах для данного BitsPerPixel ( bpp ) или битовой глубины .BitsPerPixel ).

    Когда bpp> 8 , мы должны игнорировать добавление цветовой палитры к изображению BMP и установить TotalColors на 0 . В этом случае цвет пикселя будет получен из каналов RGB ( и альфа-канал в случае 32bpp ). Мы поговорим о том, как интерпретируются значения RGB, когда мы будем создавать изображения BMP.

    Значение ImportantColors в заголовке BITMAPINFOHEADER используется, когда бит на пиксель ≤ 8 . Но во всех случаях он должен быть установлен на 0 .Этот ответ на Adobe Forum очень подробно объясняет поле ImportantColors .

    Цитата: Это количество цветов, которые считаются важными при рендеринге изображения. Например, изображение может содержать 47 разных цветов, но, возможно, разумное изображение можно создать, используя всего 13 из них. Если изображение отображается на оборудовании с очень ограниченными цветовыми возможностями, например, на дешевой ЖК-панели, поддерживающей только 16 цветов, то читатель знает, что он должен иметь возможность генерировать приемлемое изображение, просто используя первые 16 цветов в таблице цветов.Излишне говорить, что важные цвета должны быть сначала сохранены в Таблице цветов, чтобы это работало. Это оставлено на усмотрение приложения, читающего файл, чтобы определить, как сопоставить «неважные» цвета с доступными. Если этот параметр равен нулю, то все цвета в таблице цветов считаются важными.

    Каждая запись в этой таблице имеет размер 4 байта шириной . 3 байта выделяются для определения интенсивности цветовых каналов Red , Green и Blue соответственно.Каждый байт определяет 256 уникальных значений каждого цветового канала. 4-й байт зарезервирован и должен быть установлен на 0 .

    Следовательно, размер этого блока и переменный зависит от количества записей цвета в этом блоке. В двух словах, общий размер этого блока составляет 4 x N байт, где N — это общее количество записей в цветовой палитре.

    Блок 4: необработанные данные пикселей

    Этот блок содержит двоичные числа, предназначенные для представления уникальных значений цвета каждого отдельного пикселя.В зависимости от bpp изображения BMP, байт может содержать значения цвета нескольких пикселей, или несколько байтов могут использоваться для представления значения цвета одного пикселя.

    Размер этого блока, однако, не так просто вычислить. BMP строки сканирования нуждаются в байтах заполнения (, которые будут изучены в следующем разделе ), и, следовательно, мы сможем вычислить размер, как только мы запишем все байты.

    Общий размер файла BMP

    Поле FileSize в заголовке BITMAPFILEHEADER представляет собой сумму всех байтов в этих 4 блоках .Мы могли бы установить значение этого поля на 0 , и оно могло бы работать во всех приложениях рендеринга BMP, но этого следует избегать.

    (структура файла BMP)

    Общие сведения о типах файлов, битовой глубине, размере данных изображения. С калькуляторами для расчета размера изображения и преобразования КБ, МБ и ГБ.

    Общие сведения о типах файлов, битовой глубине и размере данных изображения. С калькуляторами размера изображения и преобразования КБ, МБ и ГБ

    www.scantips.com

    Общие сведения о типах файлов, битовой глубине и стоимости памяти изображений

    Тема «Цвет RGB» перенесена на отдельную страницу.

    Калькуляторы ниже:

    Большие фотоизображения занимают много памяти и могут вызвать проблемы у наших компьютеров. Загрузка может быть очень медленной. Стоимость памяти для изображения рассчитывается из размера изображения. Наш обычный 24-битный размер изображения RGB составляет три байта на пиксель при несжатом виде в памяти (так 24 мегапикселя — это x3 или 72000000 байтов, что составляет 68,7 МБ без сжатия в памяти, но может быть меньше в сжатом файле. намного больше, чем можно использовать для большинства целей просмотра или печати (но большое количество пикселей дает преимущества для больших отпечатков или более экстремального кадрирования и т. д.).

    Один из необходимых базовых показателей, который показывает размер изображения, необходимый для того, чтобы у него было достаточно пикселей для правильной печати фотографии, — это очень простой расчет:

    Для работы этого калькулятора в вашем браузере должен быть включен JavaScript.

    Это покажет требуемый размер изображения (в пикселях) для печати этого размера бумаги с желаемым разрешением dpi.

    Размер сканирования — это тот же расчет, более подробная информация в конце ниже.

    Размер файла указан в четырех размерах цифрового изображения ниже

    Печать фотографий с разрешением 250 или 300 dpi считается очень желательной и оптимальной.Но это число dpi НЕ обязательно должно быть точным, изменение 10% или 15% не будет иметь большого эффекта. Но планирование размера изображения таким образом, чтобы в нем было достаточно пикселей, где-то от 240 до 300 пикселей на дюйм, — это очень хорошая вещь для печати, называемая «фотографическим качеством». Более 300 dpi действительно не могут помочь при печати фотографий, но менее 200 dpi могут ухудшить качество изображения. Обычно речь идет о том, что наш глаз способен видеть, но зависит от СМИ. См. Руководство по печати для получения информации о разрешении, необходимом для нескольких общих целей.

    Это довольно простой расчет. Подойдет и большее количество пикселей (но загрузка медленная, по сути, напрасная трата усилий). Принтер или лаборатория печати просто выбросят лишнее, но слишком большое количество пикселей может серьезно ограничить разрешение и резкость отпечатанной копии.

    Соотношение сторон кадрирования для соответствия размеру бумаги также является важным аспектом.

    И есть калькулятор с большим разрешением, который знает, как сканировать, печатать и увеличивать.

    Стоимость памяти для исходного цветного изображения размером 8×10 дюймов по умолчанию составляет:

    3000 x 2400 пикселей x 3 = 21.6 миллионов байтов = 20,6 мегабайт.

    Последний «× 3» предназначен для 3 байтов информации о цвете RGB на пиксель для 24-битного цвета (3 значения RGB на пиксель, что составляет один 8-битный байт для каждого значения RGB, что в сумме составляет 24-битный цвет).

    Но сжатый файл будет меньше (возможно, 10% от этого размера для JPG), выбранный нами для качества JPG. Но чем он меньше, тем хуже качество изображения. Чем он больше, тем лучше качество изображения. В несжатом виде данные имеют размер три байта на пиксель.

    Сжатие данных и размеры файлов

    Размер изображения всегда имеет размер пикселей , например 6000×4000 пикселей или 24 мегапикселя.

    Размер данных и файла имеет размер байтов, , например, 12 мегабайт (часто сжимаются для хранения).

    24-битные данные RGB-фотографии всегда имеют размер 3 байта на пиксель (в несжатом виде для использования).

    Данные обычно сжимаются до меньшего размера, находясь в файле (очень радикально меньше для JPG).Для использования он должен быть несжатым.

    Сжатие данных бывает двух типов: без потерь или с потерями.

    • Сжатие без потерь означает, что мы получаем из файла точно те же данные, что и помещали в файл, как и ожидалось, без каких-либо изменений. Сжатие TIF LZW и 24-битное сжатие PNG без потерь. Без потерь означает, что сжатие не так эффективно, размер файла не становится таким маленьким, но качество данных остается неизменным, полностью неизменным, неизменным, без потери качества.Мы, безусловно, предпочитаем, чтобы в нашем программном обеспечении для банковских счетов использовалось сжатие без потерь. То же самое и с изображением высокого качества.
    • Сжатие с потерями всегда возвращает то же неизменное количество пикселей, но некоторые из них могли иметь измененные или искаженные значения цвета. Файлы JPG используют сжатие с потерями. Чтобы быть более эффективным (создавая наименьший размер данных), сжатие с потерями позволяет значительно уменьшить размер, не заботясь об изменении данных.JPG является распространенным типом с потерями, но на его качество изображения могут негативно повлиять артефакты JPG, которые для коэффициента качества JPG могут быть очень умеренными или резкими, но никогда снова не будут точно такими же исходными данными. Умеренное сжатие JPG — наш классический стандарт для просмотра и печати, обычно не проблема, если оно понимается и обрабатывается правильно, но просто не переусердствуйте. Для любого изображения более крупные файлы JPG имеют лучшее качество, чем файлы JPG меньшего размера. Помните, что JPG большего размера по-прежнему представляет собой небольшой файл по сравнению с файлами без потерь.Попытки экстремального сжатия — не лучший план относительно качества изображения.

    Сжатие данных в файле слишком сильно меняет размер данных, чтобы байты имели конкретное значение для размера изображения. Скажем, размер нашего 24-мегапиксельного изображения составляет 6000×4000 пикселей. Этот «размер в пикселях» является важным параметром, который говорит нам, как мы можем использовать это изображение. Размер данных может составлять 72 МБ (в несжатом виде или, возможно, 12 МБ или другие числа, если они сжаты в файл JPG), но этот размер файла ничего не говорит нам о размере изображения, только о пространстве для хранения или скорости Интернета.Например, обычно у нас есть 24-битное цветное фотоизображение, которое составляет 3 байта данных на пиксель в несжатом виде (по одному байту каждого из данных RGB). Это означает, что любая 24-мегапиксельная камера делает RGB-изображения размером 72 миллиона байтов (калькулятор ниже преобразует это в 68,7 МБ, размер данных до сжатия). Однако методы сжатия данных могут уменьшить размер этих данных при хранении в файле. В некоторых случаях значительно меньше, и, возможно, 68,7 МБ переходит в файл размером от 4 до 16 МБ при сжатии JPG.Мы не можем указать какие-либо точные размеры, потому что при создании файла JPG (в камере или в редакторе) мы можем выбрать различные настройки JPG Quality . Для этого примера 24-мегапиксельного изображения результаты в формате JPG могут варьироваться от:

    • Установка более высокого качества JPG создает файлы большего размера с более высоким качеством изображения
      (16 МБ будет 68,7 МБ / 16 МБ, что соответствует соотношению размеров 4,3: 1, очень высокое качество).
    • Параметр «Низкое качество JPG» создает файлы меньшего размера с более низким качеством изображения
      (4 МБ будет 68.7 МБ / 4 МБ, что соответствует соотношению размера 17: 1, гораздо более низкое качество).
    • Размер изображения (размеры в пикселях) также сильно влияет на размер данных (68,7 МБ).
    • И до некоторой степени степень детализации сцены также влияет на степень сжатия.

    Конечно, мы предпочитаем более высокое качество. Мы не делаем никаких одолжений нашим фотографиям, выбирая более низкое качество JPG. Однако отправка бабушке фото с детьми не обязательно должна быть 24 мегапикселя. Максимальный размер, может быть, 1000 пикселей является разумным для электронной почты, при этом на экране все еще большой размер.Или даже меньше, если на мобильный телефон. Даже для печати 5×7 дюймов требуется всего 1500×2100 пикселей. Но этот повторный образец должен быть КОПИЙ. Никогда не перезаписывайте исходное изображение.

    Файлы JPG, сделанные слишком маленькими, конечно, не плюс, чем больше, тем лучше качество изображения. Конечно, мы хотим, чтобы изображения с наших камер были как можно лучше. Кроме того, размер сжатого файла, естественно, зависит от содержимого изображения. Изображения, содержащие много мелких деталей повсюду (дерево, полное мелких листьев), будут немного больше, а изображения с большим количеством пустого безликого содержания (стены или голубое небо и т. Д.)) будет заметно меньше (лучше сжата). Размеры файлов могут варьироваться в диапазоне 2: 1 из-за резких различий в деталях сцены. Но файлы JPG обычно составляют от 1/5 до 1/12 размера данных изображения (но существуют и другие крайности). Возможны как больший, так и меньший размер (необязательный выбор, устанавливаемый настройкой качества JPG).

    Затем, когда файл открывается и данные изображения распаковываются и отображаются, данные изображения возвращаются из файла в несжатом виде и имеют исходный размер с исходным количеством байтов и пикселей при открытии в памяти компьютера.Количество пикселей по-прежнему одинаковое, но различия в качестве JPG влияют на точность цветопередачи некоторых пикселей (детали изображения отображаются с помощью цветов пикселей). Плохие эффекты сжатия могут добавить видимые артефакты JPG, которые мы можем научиться видеть.

    Лучший план использования изображений JPG

    Мудрый выбор — ВСЕГДА архивировать и сохранять исходное изображение в формате JPG с камеры. Если требуется отредактировать или изменить размер, отредактируйте изображение по своему усмотрению, но затем сделайте КОПИРОВАНИЕ другого высококачественного файла JPG для использования (с другим именем файла). Никогда не перезаписывайте исходный файл, может понадобиться позже. Чем важнее изображение, тем важнее сохранить в первозданном виде копию исходного изображения. Другого пути назад нет.

    И вторая причина: не редактируйте копии JPG повторно, то есть, если для последующих планов требуется еще одно редактирование или изменение размера изображения, НИКОГДА не начинайте с этого ранее отредактированного файла JPG (сжатие JPG с потерями означает, что у него уже есть два набора JPG артефактов в нем, от камеры, а затем от первого редактирования), так что третий или четвертый здесь не помогут.Считайте копию JPG расходным материалом, выбросьте ее, когда закончите с ней). НАЧАТЬ НАЧАЛО из заархивированного немодифицированного исходного файла. Потому что каждая операция SAVE с файлом JPG снова выполняет сжатие JPG поверх всех предыдущих сохранений как JPG. Или, если первое редактирование было обширной работой (больше, чем просто), вы могли бы подумать заранее, чтобы также сохранить эту работу в файле без потерь (TIF LZW или 24-битный PNG, которые не содержат потерь и не будут добавлять дополнительные артефакты JPG) , а также сохраните этот файл как архив, а затем используйте его как основную версию и сделайте из него любую последующую копию JPG.Это сохранение в формате TIF не удалит какие-либо существующие артефакты JPG в данных изображения, но не добавит больше.

    Вы можете подумать, что эти первые правки важны и они нужны любому пользователю, поэтому перезапись исходного файла — хороший план. Я был там и делал это, но не буду снова (конечно, ни в чем даже немного важном), потому что он добавляет дополнительные артефакты JPG, и мои планы на будущее тоже могут измениться. Честно говоря, иногда я делаю ошибки и мне нужно передумать. Сохранение JPG высокого качества, похоже, не сильно повредит, но в конечном итоге (после многократного сохранения в формате JPG) вы можете обнаружить, что ваше самое важное изображение было повреждено, и тогда уже слишком поздно.Если изображение имеет какое-либо значение, я бы посчитал, что каждое сохранение как JPG будет еще одним кумулятивным сохранением как JPG, которое добавляет дополнительные потери JPG каждый раз, когда сохраняется, и единственный способ предотвратить это — не делать этого, а вместо этого идти вернуться к неизмененному исходному файлу, если он у вас еще есть. Планируйте сохранить его в безопасности. Лучшая гарантия — сохранить исходный образ (а также сделать резервную копию на другом диске).

    Альтернативный план для важных изображений — всегда сохранять ваши заархивированные изменения как TIF LZW или как 24-битный PNG для фотографий (НЕ 8-битный PNG, который предназначен для графики), которые являются большими файлами, но со сжатием без потерь, поэтому не беспокойтесь об изображении качество.Редактируйте и сохраняйте их по своему желанию, сколько угодно. Затем, в конце, сделайте последнюю копию в формате JPG высокого качества для использования во всем мире. Когда и если вам понадобятся дополнительные изменения, откажитесь от этого JPG как расходного материала и начните с вашего заархивированного файла без потерь и, наконец, сделайте замену JPG. Идея состоит в том, что изображение подвергается только двум сжатиям JPG: исходному в камере и последнему после редактирования. Оба должны использовать ВЫСОКОЕ КАЧЕСТВО JPG.

    Так что планируйте заранее, пути назад нет.Чем важнее изображение, тем больше нужно над этим обдумать. Не испортите свое единственное исходное изображение. После того, как вы «побывали там, сделали это», эта идея станет для вас очень важной. Одним из преимуществ использования файлов Raw является то, что он делает этот шаг обязательным и простым (редактирование без потерь, но Raw также имеет и другие большие преимущества).

    Фотопрограммы различаются по тому, как они описывают качество JPG. У программного обеспечения есть варианты того, как это делается, и качество 100 является произвольным (не в процентах ни от чего), и оно НИКОГДА не означает 100% качество.Это всегда JPG. Но максимальное качество JPG на уровне 100 и даже качество 90 (или 9 по десятибалльной шкале) должно быть довольно приличным. Я обычно использую Adobe Quality 9 для печати изображений JPG, как «достаточно хорошее». Веб-изображения обычно менее качественные, потому что размер файла очень важен в Интернете, и их можно просмотреть только один раз.

    13 МБ JPG из 68,7 МБ данных будет иметь 19% исходный размер (~ 1/5), и мы ожидаем отличного качества (не совсем идеального, но чрезвычайно адекватного, в чем сложно поверить).

    6 МБ JPG от 68.7 МБ будут сжаты до размера 8% (~ 1/12), и мы не ожидаем лучшего качества. Возможно, приемлемо для некоторых случайных целей, например, для Интернета, но что-то меньшее, вероятно, будет плохой новостью.

    Компрометирующий маленький размер, уменьшение размера до 1/10 (10%) может быть типичным и разумным размером файла для JPG, за исключением тех случаев, когда мы можем предпочесть лучшие результаты. Мы также должны понимать, что изображения с большим количеством пустых безликих областей, таких как небо или гладкие гладкие стены, могут сжиматься исключительно хорошо, менее 10%, что само по себе не является проблемой, но число вроде 10% является очень расплывчатой ​​спецификацией.Размер файла не является окончательным критерием, мы должны судить о том, как выглядит картинка. Мы можем научиться видеть и оценивать артефакты JPG. Мы бы предпочли не видеть ни одного из них на наших изображениях.

    Но у JPG есть недостатки, поскольку это сжатие с потерями, и качество изображения может быть потеряно (не восстанавливается). Единственный способ исправить это — отбросить плохую копию JPG и начать заново с нетронутого исходного изображения камеры. Выбор более высокого качества JPG обеспечивает лучшее качество изображения, но больший размер файла. Более низкое качество JPG — это файл меньшего размера, но с более низким качеством изображения.Не отрезайте нос назло своему лицу. Большой — это хорошо для JPG, большой — все равно маленький. Размер файла может иметь значение при сохранении файла, но качество изображения важно, когда мы смотрим на изображение. Более низкое качество JPG вызывает артефакты JPG (сжатие с потерями), что означает, что не все пиксели могут иметь один и тот же исходный цвет (качество изображения страдает от видимых артефактов). При открытии остается то же исходное количество байтов и пикселей, но исходное качество изображения может не сохраниться, если сжатие JPG было слишком большим.Большинство других типов сжатия файлов (в том числе PNG, GIF и TIF ​​LZW) без потерь, никогда не вызывают проблем, но, хотя и впечатляют, они не так сильно эффективны (оба сильно различаются, возможно, размер 70% вместо размера 10%).

    Сколько байт? Цифровое изображение бывает четырех размеров.

    Размер изображения имеет размер пикселей , который определяет, как изображение может быть использовано надлежащим образом. ПЕРВОЕ число, которое вам нужно знать об использовании цифрового изображения, — это его размеры в пикселей .

    Размер данных — это его несжатый размер в байтах, когда файл открывается в памяти компьютера (а размер изображения, просматриваемого на экране монитора, по-прежнему измеряется в пикселях).

    Размер файла — это его размер в байтах в файле на диске (что не является значимым числом в отношении того, как можно использовать изображение. Размер изображения в пикселях). Сжатие данных может сильно повлиять на размер файла, но размер изображения и размер данных остаются прежними.

    Размер печати — это его размер при печати на бумаге (дюймы или мм).Размер пленки также в дюймах или миллиметрах. Размер сенсора или размер пленки необходимо увеличить до размера печати или просмотра.

    Опять же, размер изображения на экране монитора по-прежнему измеряется в пикселях (размер бумаги для печати измеряется в дюймах или мм, а размеры экрана — в пикселях). Если размер изображения больше, чем размер экрана, нам обычно показывают временную передискретизированную копию меньшего размера более подходящего меньшего размера.

    Обычным и наиболее распространенным типом цветного изображения (например, любого файла JPG) является 24-битный вариант RGB.

    Расчет четырех размеров изображения

    Укажите размер изображения с помощью одного из следующих двух вариантов:
    Размер изображения x пикселей
    Мегапикселей
    и соотношение сторон 3: 2 (DSLR)
    4: 3 компактный, телефон
    16: 9 в 3: 2 камера
    4: 5
    Тип данных Оттенки серого, 8 бит / пиксель, 1 байт / пиксель, JPG, TIF, PNG
    Оттенки серого, 16 бит / пиксель, 2 байта / пиксель, TIF, PNG
    RGB, 24-битный цвет, 3 байта / пиксель, JPG, TIF, PNG
    RGB, 48-битный цвет, 6 байт / пиксель, файлы TIF, PNG
    CMYK, 32 бит / пиксель, 4 байта / пиксель, файлы TIF
    Необработанное изображение камеры, 12 бит / пиксель
    Необработанное изображение камеры, 14 бит / пиксель
    Необработанное изображение камеры, 16 бит / пиксель
    Индексированный цвет, 256 цветов, 8-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 128 цветов, 7-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 64 цвета, 6-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 32 цвета, 5-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 16 цветов, 4-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 8 цветов, 3-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 4 цвета, 2-битный индекс, TIF, PNG, GIF
    Индексированный цвет, 2 цвета, 1 бит / пикс, TIF, PNG, GIF
    Штриховая графика (ч / б), 1 бит / пиксель, файлы TIF, PNG
    Добавить примерный размер Exif (необязательно)

    байта
    КБ

    При печати с разрешением пикселей на дюйм
    Размер изображения
    Размер данных
    Размер файла
    Размер печати

    Для работы этого калькулятора в вашем браузере должен быть включен JavaScript.

    Заявление об ограничении ответственности: Размер изображения — это фактический размер двоичного изображения в пикселях. Размер данных — это байты несжатых данных для пикселей изображения, когда файл открывается в памяти компьютера. Эти части известны и просты, но есть и другие факторы.

    • Размер файла зависит от степени сжатия данных . Рассчитанные здесь размеры файлов не могут быть точными, это просто приблизительные предположения, которые подходят для всех, поскольку степень сжатия зависит от режима, типа, битовой глубины и детализации сцены.Это приблизительный показатель, и никаких гарантий не предоставляется. Ограниченная цель здесь — просто предложить некоторые относительные ценности. Любая небольшая вариация не портит задуманной концепции.
    • Размер файла также очень незначительно зависит от размера Exif , который варьируется, я видел от нуля до 23 КБ (что очень мало по сравнению с мегабайтами). Размер Exif зависит от источника файла, который может быть разным. Также Adobe «Сохранить для Интернета» удаляет Exif, который мог существовать. Индексированные файлы включают размер палитры, но файлы GIF не содержат Exif.PNG формально не имеет Exif, но такие данные обычно могут быть добавлены несколькими приложениями. Многие файлы Raw являются внутренними файлами TIF ​​с необработанными данными в разделе Exif. Все становится сложно, но Exif относительно невелик. Вы можете добавить ожидаемый размер Exif, если он известен, но это не будет иметь большого значения. По умолчанию Exif здесь составляет 6 КБ, что составляет всего 0,0059 мегабайта (калькулятор преобразования МБ ниже). При желании вы можете ввести 0.

      В качестве примера, файл JPG из моей зеркальной фотокамеры Nikon D800 — это 23300 байт Exif (по данным ExifTool).Но затем редактирование Photoshop «Сохранить как JPG» удаляет многое, уменьшая его примерно до половины размера, или «Сохранить для Интернета» уменьшает его до нуля. Raw не сообщает размер Exif, но предполагается, что это те же данные, что и в JPG той же камеры. Небольшой Canon compact (ELPH) JPG Exif имеет размер 12300 байт. Размер Exif в формате JPG для iPhone 4S составляет 14050 байт, а для iPhone 5S — 12278 байт. Я видел, как Exif в TIF и PNG, созданные в Photoshop, варьируются от 2 КБ до 9 КБ, на значения которых без видимой причины влияет индексированная битовая глубина (данные выглядели одинаково, с разными числами).Возможно, добавление 12 КБ или более для Exif разумно для камер, но, может быть, 6 КБ для файлов редактора? Exif может добавить от 0 до 25 КБ или около того … но в мегабайтах это все равно почти незаметно.

    • Размер встроенного JPG в файлы Raw Добавлен на основе моей цифровой зеркальной камеры Nikon, которая добавляет полноразмерный, но некачественный JPG (рассчитанный как размер 20: 1, что согласуется) к необработанным файлам, но некоторые камеры добавить изображение JPG меньшего размера, чем полный размер, в свои файлы Raw. Этот встроенный JPG-файл используется для отображения предварительного просмотра RGB на заднем ЖК-дисплее камеры, а также для вычисления и отображения гистограммы RGB, отображаемой в камере, но в остальном он не влияет на необработанный файл за пределами камеры.

    Обратите внимание, что несжатые 24-битные данные RGB всегда составляют три байта на пиксель , независимо от размера изображения. Цветовые данные в файлах JPG — 24-битный RGB. Например, несжатое 24-мегапиксельное изображение размером 6000×4000 пикселей будет иметь размер 6000×4000 x 3 = 72 миллиона байтов, а также 24 x 3 каждый раз. Это его фактический размер в байтах памяти компьютера при открытии файла. Введите свои числа, но преобразование в единицы МБ — это деление байтов на 1048576 (или просто деление на 1024 дважды), в результате чего единицы преобразуются в 68.66 мегабайт. Файлы JPG будут различаться по размеру, поскольку степень сжатия JPG зависит от уровня детализации сцены и от правильного коэффициента качества JPG, указанного при записи JPG.

    Говоря о вариациях размера сцены , если у вас есть несколько десятков изображений JPG из самых разных случайных сцен в одной папке (но, в частности, все они написаны из одного источника с одинаковым размером изображения с одинаковыми настройками JPG), а затем отсортированы по size, самый большой и самый маленький файл часто может отличаться от размера файла 2: 1 (возможно, намного больше для крайностей).Гладкие области с безликой детализацией (безоблачное небо, гладкие стены и т. Д.) Сжимаются значительно меньше, чем сцена, полная областей с высокой детализацией (например, много деревьев или много листьев деревьев). Если размер JPG в этом примере с 24 мегапикселями составляет, скажем, 12,7 МБ, то (без учета небольшого Exif) это будет 12,7 МБ / 68,66 МБ = 18,5% размера без сжатия, что составляет 1 / 0,185 = уменьшение размера 5,4: 1. Это был бы JPG высокого качества. Но размер файла JPG также зависит от степени детализации сцены, поэтому размер файла не является жестким ответом на качество.См. Образец этого варианта размера JPG. См. Подробнее о пикселях.

    Совместимые типы файлов

    Различные цветовые режимы имеют разные значения размера данных, как показано.

    Тип изображения Байт на пиксель Возможные цвета
    комбинаций
    Совместимые
    Типы файлов
    1 бит
    Штриховая графика
    1 / 8 байт на пиксель 2 цвета, 1 бит на пиксель.
    Одна краска на белой бумаге
    TIF, PNG, GIF
    8-битный индексированный цвет До 1 байта на пиксель, если 256 цветов Максимум 256 цветов.
    Для графики используйте сегодня
    TIF, PNG, GIF
    8-битная шкала серого 1 байт на пиксель 256 оттенков серого С потерями: JPG
    Без потерь:
    TIF, PNG
    16-битная шкала серого 2 байта на пиксель 65636 оттенков серого TIF, PNG
    24-битный RGB
    (8-битный режим)
    3 байта на пиксель (по одному байту для R, G, B) Вычисляет макс. 16,77 миллиона цветов.24 бита — это «Норма» для фотоизображений, например, JPG С потерями: JPG
    Без потерь:
    TIF, PNG
    32-битный CMYK 4 байта на пиксель, для допечатной подготовки Голубые, магнетические, желтые и черные чернила, обычно в полутонах TIF
    48-битный RGB
    (16-битный режим)
    6 байт на пиксель 2,81 триллиона цветов макс.
    За исключением того, что у нас нет 16-битных устройств отображения
    TIF, PNG

    Количество цветовых комбинаций является «максимально возможным» вычисленным.Человеческий глаз ограничен и может различать от 1 до 3 миллионов из 16,77 миллионов возможных в 24-битном цвете. Типичное реальное фотоизображение может содержать от 100 до 400 тысяч уникальных цветов.

    Несколько примечаний:

    • Файлы JPG могут содержать только 24-битный цвет RGB или 8-битную шкалу серого. JPG радикально отличается от большинства форматов, в нем используется сжатие с потерями, которое в крайних случаях может быть очень маленьким, но также может ухудшить качество изображения, если мы переусердствуем. Лучшее фотоизображение — это файл большего размера с лучшими настройками качества JPG.Несомненно, самый популярный файл изображения, большинство изображений цифровых камер и изображений веб-страниц — это JPG. Многие одночасовые фотопечати принимают только файлы JPG. Только не переусердствуйте с уменьшением размеров. Самое большое высококачественное изображение JPG по-прежнему является довольно маленьким файлом по сравнению с другими.
    • GIF-файлы были разработаны CompuServe для ранних 8-битных видеомониторов, когда небольшой размер файла был важен для скорости коммутируемых модемов, и все это до того, как 24-битный цвет или JPG были популярны (а теперь 24-битный цвет намного лучше для фотоизображений) .Поскольку разрешение изображения (dpi) не используется видеомониторами, оно не сохраняется в файлах GIF, что делает GIF менее пригодным для печати. Размер GIF составляет не более одного байта на пиксель, и он предназначен для индексированного цвета, такого как графика, но также подойдет 8-битная шкала серого. GIF использует сжатие без потерь.
    • PNG-файлы универсальны (многоцелевые) и могут считаться заменой GIF. Два основных режима: 8-битный режим PNG (PNG8) предназначен для индексированного цвета, сравнимое использование с файлами GIF (но с дополнениями).В противном случае PNG может иметь 24-битный или 48-битный цвет RGB или 8 или 16-битную шкалу серого, что сравнимо с TIF для них. PNG использует сжатие без потерь, часто файл немного меньше, чем GIF или TIF ​​LZW, но может немного медленнее открываться и распаковываться.
    • Файлы TIF являются наиболее универсальными в нескольких отношениях (различные типы изображений: RGB, допечатная подготовка CMYK, YCbCr, полутона, CIE L * a * b *), и, безусловно, можно сказать, что они популярны среди более серьезных пользователей (но не совместимы в веб-браузеры). Обычно используется для данных без потерь, как фотографий, так и для архивирования отсканированных текстовых документов.Для фотографий используется сжатие LZW, а в документах обычно используется сжатие ITU G3 или G4 (включая факс — штриховые рисунки в формате TIFF). Технически TIF ​​позволяет дизайнерам изобретать любой новый формат в формате TIF, но тогда он совместим только для их предполагаемого использования с их программным обеспечением. Некоторые файлы Raw относятся к этой категории. Технически TIF ​​также может поддерживать сжатие JPG, предлагаемое Photoshop, но эти файлы будут несовместимы с большинством пользователей.
    • Необработанные файлы имеют размер 12 или 14 бит на пиксель (менее 2 байтов на пиксель) и часто также сжимаются.Необработанные изображения не доступны для просмотра напрямую (наши мониторы показывают RGB). Мы видим преобразование RGB при обработке необработанных данных (обычно при корректировке баланса белого и, возможно, экспозиции), а затем выводится файл RGB, часто файл JPG. Если в дальнейшем потребуется дополнительное редактирование, мы отбрасываем этот файл JPG как расходный и используем необработанный процесс для добавления любого дополнительного редактирования и вывода хорошего заменяющего файла JPG.
    Некоторые особенности распространенных типов файлов
    Свойство файла JPG TIF PNG GIF
    Веб-страницы могут отображать это Да Да Да
    Несжатый вариант Да
    Сжатие без потерь Да
    Сжатие без потерь Да Да Да
    Оттенки серого Да Да Да Да
    Цвет RGB Да Да Да
    8-битный цвет (24-битные данные) Да Да Да
    16-битный цвет (48-бит) Да Да
    Цвет CMYK или LAB Да
    Вариант индексированного цвета Да Да Да
    Вариант прозрачности Да Да
    Вариант анимации Да

    8-бит: Как правило, для одних и тех же слов с разными значениями часто используется несколько определений: одно из них — 8-бит.

    В изображениях RGB — 8-битный «режим» означает три 8-битных канала данных RGB, также называемых данными 24-битной «глубины цвета». Это три 8-битных канала, по одному байту для каждого из компонентов R, G или B, что составляет 3 байта на пиксель, 24-битный цвет и до 16,7 миллиона возможных цветовых комбинаций (256 x 256 x 256). Наши мониторы или принтеры — это 8-битные устройства, то есть 24-битный цвет. 24 бита очень хорошо подходят для фотографий.

    В изображениях в градациях серого (черно-белые фотографии) значения пикселей представляют собой один канал 8-битных данных, состоящий из отдельных чисел, представляющих оттенок серого от черного (0) до белого (255).

    Индексированный цвет: Обычно используется для графики, содержащей относительно небольшое количество цветов (например, только 4 или 8 цветов). Все файлы GIF и PNG8 имеют цветную индексацию, а индексирование — это опция в TIF. Эти индексированные файлы включают цветовую палитру (это просто список фактических цветов RGB). 8-битный индекс — это 2 8 = 256 значений 0..255, что соответствует 256-цветовой палитре. Или 3-битный индекс — это 2 3 = 8 значений 0..7, что соответствует 8-цветовой палитре. Фактические данные пикселей — это номер индекса в этой ограниченной палитре цветов.Например, в данных пикселей может быть указано «использовать цвет номер 3», поэтому цвет пикселя берется из цветовой палитры номер 3, который может быть любым 24-битным цветом RGB, хранящимся там. Редактор, создающий индексированный файл, округляет все цвета изображения до ближайших значений из этого ограниченного числа возможных значений палитры. Индексированные данные пикселей обычно по-прежнему составляют один байт на пиксель до сжатия, но если байты содержат только эти небольшие индексные числа, скажем, для 4-битных 16 цветов, сжатие (без потерь) может значительно уменьшить размер файла.Ограничение только 256 цветами не подходит для фотоизображений, которые обычно содержат от 100 до 400 тысяч цветов, но 8 или 16 цветов — это очень маленький файл и очень подходит для графики, состоящей только из нескольких цветов. Подробнее об индексированном цвете.

    8-битный цвет был широко распространен до того, как стало доступно наше текущее 24-битное цветное оборудование. Замечание из истории: мы все еще можем видеть старые упоминания о «безопасных для Интернета цветах». Речь не шла о безопасности, этот стандарт был в те времена, когда наши 8-битные мониторы могли отображать только несколько проиндексированных цветов.Палитра «веб-безопасная» состояла из шести оттенков каждого R, G, B (216), плюс 40 системных цветов, которые могла использовать ОС. Эти цвета будут отображаться правильно, любые другие цвета будут наиболее подходящими. «Веб-безопасный» сейчас устарел, сегодня каждый цвет RGB «безопасен» для 24-битных цветовых систем.

    Line Art (также называемый Bilevel) — это два цвета, обычно черные чернильные точки на белой бумаге (печатный станок может использовать чернила или бумагу другого цвета, но ваш домашний принтер будет использовать только черные чернила). Штриховой рисунок представляет собой упакованные биты и не индексируется (и не то же самое, что индексированный 2 цвета, который может быть любыми двумя цветами из палитры, а индексированный несжатый все еще составляет один байт на пиксель, но сжатие очень эффективно для меньших значений) .Сканеры имеют три стандартных режима сканирования: штриховой рисунок, оттенки серого или цветной режим (они могут называть это этими именами, или некоторые (HP) могут называть их черно-белый режим, черно-белый фото режим и цветной, то же самое. Штриховая графика — это самый маленький и простой , самый старый тип изображения, 1 бит на пиксель, каждый пиксель — это просто данные 0 или 1. Примеры: факс — это штриховая графика, ноты лучше всего в качестве штриховой графики, а печатные текстовые страницы обычно лучше всего сканировать как штриховую графику. режим (кроме любых фотоизображений на той же странице).Название происходит от штриховых рисунков, таких как газетные карикатуры, которые обычно представляют собой штриховые рисунки (возможно, сегодня внутри черных линий добавлен цвет, как в детской книжке-раскраске). Мы обычно сканируем цветные работы с разрешением 300 точек на дюйм, но штриховые рисунки — это более четкие линии, если они созданы с разрешением 600 точек на дюйм, или, возможно, даже 1200 точек на дюйм, если у вас есть способ распечатать это (это работает, потому что это только один чернила, нет цветных точек с смущаться). Даже в этом случае штриховая графика создает очень маленькие файлы (особенно в сжатом виде). Штриховая графика — отличный материал, когда это применимо, очевидный выбор в таких особых случаях.Режим штрихового рисунка в Photoshop ловко достигается в Image — Mode — BitMap , где он не говорит штриховой рисунок, но штриховой рисунок создается путем выбора 50% Threshold там в BitMap (который уже должен быть изображением в градациях серого. для доступа к BitMap). BitMap существует на самом деле для полутонов, за исключением выбора 50% Threshold , что означает, что все тона темнее среднего будут просто черными, а все тона светлее среднего будут белыми, что является штриховым рисунком. Два цвета, черный и белый (порог 50%), означают, что все тона темнее среднего будут просто черными, а все тона светлее среднего будут белыми, что является штриховым рисунком.Два цвета, черный и белый.

    Один МБ — это немногим более одного миллиона байтов

    Размер памяти изображений часто указывается в мегабайтах. Вы можете заметить небольшое расхождение в количестве, которое вы вычисляете по пикселям с размером WxHx3 байтов. Это потому, что (что касается размеров памяти) «мегабайты» и «миллионы байтов» — это не совсем одно и то же единицы.

    Размеры памяти в таких единицах, как КБ, МБ, ГБ и ТБ, рассчитываются в единицах по 1024 байта на один килобайт, тогда как люди считают тысячи единиц по 1000.

    Миллион равен 1000×1000 = 1000000, степени 10 или 10 6 . Но двоичные единицы используются для размеров памяти, степени двойки, где один килобайт равен 1024 байтам, а один мегабайт равен 1024×1024 = 1,048,576 байта, или 2 20 . Таким образом, число вроде 10 миллионов байтов составляет 10 000 000 / (1024×1024) = 9,54 мегабайт. Один двоичный мегабайт содержит на 4,86% (1024 × 1024/1000000) байтов больше, чем один миллион, поэтому на 4,86% мегабайт меньше, чем в миллионах.

    Общие сведения об единицах размера микросхем памяти в КБ, МБ, ГБ, ТБ

    Введите значение где-нибудь здесь и нажмите его кнопку «Преобразовать», чтобы преобразовать другие эквиваленты значений.

    Для работы этого калькулятора в вашем браузере должен быть включен JavaScript.

    После изменения режима с 1024 (2 20 ) на 1000 (10 3 ) единиц, вам также нужно будет выбрать и отправить значение размера, которое будет преобразовано таким образом.

    Если в результате вы можете увидеть такой формат, как «e-7», это просто означает перемещение десятичной запятой на 7 разрядов влево (или e + 7, перемещение вправо). Пример: 9.53e-7 равно 0.000000953

    Любые вычисленные дробные байты округляются до целых байтов.В двоичном режиме каждая строка в калькуляторе в 1024 раза больше строки под ней (степень двойки). Это двоичный код, и именно так память вычисляет байтовые адреса. Однако люди обычно используют 1000 единиц для своих вещей (степень 10).
    Чтобы быть предельно ясным:

    Двоичные степени двойки равны 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 … что равно 2 в степени 0, 1, 2, 3, 4, 5, и т.п.

    Цифровые степени 10 равны 1, 10, 100, 1000, 10000, 100000 … что равно 10 в степени 0, 1, 2, 3, 4, 5 и т. Д.

    В частности, мегапиксели и жесткий диск объемом ГБ или ТБ, который мы покупаем, правильно рассчитаны на 1000 единиц, а диск на 500 ГБ — это 500000000000 байтов. Однако, когда мы форматируем диск, когда Windows показывает 1024 единицы, называя это 465,7 ГБ, но это в любом случае точно такие же байты. Микросхемы памяти (включая SSD, карты камеры и USB-накопители) обязательно используют 1024 единицы. Размер файла не должен составлять 1024 единицы, но в любом случае это обычная практика. Windows может показывать размер файла в любом случае, в зависимости от местоположения (Windows File Explorer обычно показывает двоичные КБ, но Cmd DIR показывает фактические десятичные байты).

    Преобразование с помощью прямых вычислений
    От \ До B КБ МБ ГБ ТБ
    B/1024/1024
    дважды
    /1024
    3 раза
    /1024
    4 раза
    КБ x1024/1024/1024
    дважды
    /1024
    3 раза
    МБ x1024
    дважды
    x1024/1024/1024
    дважды
    ГБ x1024
    3 раза
    x1024
    дважды
    x1024/1024
    TB x1024
    4 раза
    x1024
    3 раза
    x1024
    дважды
    x1024

    Вычисления легко выполнять напрямую.Преобразование выполняется в таблице слева направо. Если вы хотите преобразовать байты в МБ, байты в МБ — это два шага прямо в списке (B, КБ, МБ, ГБ, ТБ), поэтому просто разделите байты на 1024 дважды, чтобы получить МБ. Или разделите три раза на ГБ.

    Пример:
    3 ГБ = 3 × 1024 × 1024 = 3145728 КБ
    (x 1024 дважды для ГБ и КБ)

    Мы также видим единиц Мбайт как пропускной способности. Маленький b — это биты, например, в Мбит / с пропускной способности. Заглавная B — это байты данных, как в мегабайтах. В полосе пропускания используются цифровые единицы с степенью 10.Есть Восемь бит на байт , поэтому Мб = Мб x 8.

    О мегабайтах и ​​мегапикселях

    Люди считают в десятичных единицах 10 или 1000 (что составляет 10 3 ), а двоичные единицы — 2 или 1024 (что составляет 2 10 ). Двоичные блоки обязательно используются для микросхем памяти, в том числе SSD и флешек. Это разные числа.

    Поскольку каждая адресная строка микросхемы памяти для выбора байта может иметь два значения, 0 и 1, поэтому аппаратная память микросхемы Общее количество байтов должно быть степенью 2, например 2, 4, 8 16, 32, 64, 128, 512, 1024 и т. Д. И т. Д.) Но затем компьютерные операционные системы произвольно решили использовать 1024 единицы для размеров файлов, но это не обязательно для размеров файлов, и это просто сбивает с толку большинство людей. 🙂 Но во всех других человеческих подсчетах используются обычные десятичные 1000 единиц (степень 10 вместо двоичной 2).

    В частности, спецификации для мегапикселей, в цифровых изображениях и размера жесткого диска в гигабайтах, правильно объявлены как кратные десятичным тысячам … миллионы — это 1000×1000.Или гига это 1000х1000х1000. Так же, как считают люди. Калькулятор предлагает режим для единиц 1000, чтобы понять разницу. Эта 1000 меньше единицы, чем 1024, поэтому меньше единиц памяти в КБ, МБ и ГБ, каждая из которых содержит больше байтов. У одного и того же количества байтов просто разные единицы подсчета. Люди считают тысячи (в степени 10), а миллион — ЭТО ОПРЕДЕЛЕНИЕ Mega.

    Однако после форматирования диска операционная система компьютера имеет представление о том, как считать его в двоичных ГБ.На жестких дисках для этого нет веских причин, это просто осложнение. Производитель диска правильно объявил размер, и форматирование НЕ делает диск меньше, единицы просто меняются (на компьютерном жаргоне 1 КБ стал считаться как 1024 байта вместо 1000 байтов). Вот почему мы покупаем жесткий диск емкостью 500 ГБ (продается как 1000, действительное число, десятичное число, используемое людьми), а это действительно означает 500 000 000 000 байт, и мы получаем их все. Но затем мы форматируем его и видим, что это 465 гигабайт двоичного файлового пространства (используя 1024).Обе системы нумерации по-своему точны в числовом отношении. Фактический диск емкостью 2 ТБ составляет 2 000 000 000 000 байт / (1024 x 1024 x 1024 x 1024) = 2,819 ТБ в операционной системе компьютера. Все равно тот же точный размер в байтах. Но пользователи, которые не понимают этого переключателя системы нумерации, могут подумать, что производитель диска каким-то образом их обманул. Вместо этого нет, совсем нет, у вас есть честный подсчет. Диск считается десятичным, как и мы, люди. Никакого преступления в этом нет, мега на самом деле означает миллион (10 6 ), и мы считаем десятичным (степень 10 вместо 2).Это операционная система, которая сбивает нас с толку, называя мега чем-то другим, как степень двойки (2 20 = 1 048 576).

    И снова обратите внимание, что диск на 2 ТБ действительно имеет 2 000 000 000 000 байтов (цифровой счетчик). Но вместо этого операционная система преобразует его, чтобы указать его как 1,819 ТБ (двоичный, но на самом деле он имеет 2 ТБ байтов, как люди считают в степени 10). Это также верно в отношении мегапикселей камеры, которым также нет необходимости использовать двоичную систему подсчета (но никто не показывает мегапиксели как двоичные).

    Таким образом, термины кило, мега, гига и тера были искажены, чтобы иметь два значения. Компьютеры использовали существующие термины с разными значениями для размеров памяти. Микросхемы памяти обязательно должны использовать двоичную систему счета , но это не обязательно для жестких дисков или дисковых файлов (даже если операционная система все равно настаивает на этом). Значение префиксов Mega, Kilo, Giga и Tera означает и всегда означало десятичные единицы 1000. И с целью сохранить их фактическое десятичное значение, в 1998 году были определены новые международные единицы СИ Ki, Mi и Gi для двоичной степени. единиц, но они не прижились.Так что сегодня это все еще проблема. Микросхемы памяти являются двоичными, но нет абсолютно никаких причин, по которым наша компьютерная операционная система все еще делает это в отношении размеров файлов. Люди считают в десятичной степени 10, включая мегапиксели, а также производители жестких дисков считают байты.

    Однако , Микросхемы памяти (включая также SSD и карты памяти камеры и USB-флеш-накопители, которые все являются микросхемами памяти) отличаются, и для их конструкции требуется использование двоичных килобайт (считая в 1024 единицах) или мегабайт (1024×1024) или гигабайты (1024x1024x1024).Это связано с тем, что каждая добавленная адресная строка увеличивает размер точно вдвое. Например, четыре адресные строки представляют собой 4-битное число, считающее до 1111 двоичного числа, что составляет 15 десятичных знаков, что позволяет адресовать 16 байтов памяти (от 0 до 15). Или 8 бит насчитывает 256 значений, или 16 бит адресов 65536 байт. Таким образом, если микросхема памяти имеет N адресных строк, она обязательно предоставляет 2 N байт памяти. Вот почему размер памяти измеряется в единицах 1024 байта для того, что мы называем шагом в 1 КБ. Когда два из этих 1K чипов соединены вместе, предполагается, что они будут считать до 2x или 2048 байт.Но если каждый из них реализует только 1000 байт, между ними останется 24-байтовый промежуток, когда адресация памяти не удастся.

    Таким образом, у микросхем памяти есть веские технические причины для использования двоичных чисел, потому что каждый адресный бит представляет собой степень двойки — последовательность 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024. … делает крайне непрактичным (просто немыслимым) создание 1000-байтового чипа памяти (в чипе, который считает до 1024 кратных). Просто не получилось бы даже. Строки двоичного адреса насчитывают от 0 до 1023, поэтому необходимо добавить остальные 24 байта, чтобы заполнить их.Полностью заполнив адресные строки микросхемы памяти, мы можем соединить несколько микросхем последовательно и получить постоянно увеличивающуюся память. Однако если оставить какие-либо пробелы в адресации, это полностью испортит ее (просто непригодные для использования плохие байтовые значения), поэтому этого никогда не делается (немыслимо).

    Раньше микросхемы памяти были очень маленькими, и было проблемой, могли ли они удерживать размер одного конкретного файла. Затем было полезно определить размер этих файлов в двоичном формате, чтобы они соответствовали микросхеме памяти.Однако сегодня нет веских причин для файлов размером в двоичном формате. Файлы — это просто последовательная строка байтов, которая может быть любым общим числом. Сегодняшние микросхемы памяти, вероятно, содержат тысячи любых файлов. Поэтому теперь кажется неважным знать точное количество двоичных файлов в файле, а подсчет их в двоичном формате — бесполезная сложность. Тем не менее, подсчет в 1024 двоичных единицах в операционной системе также обычно выполняется и для файлов. Если бы у нас был файл фактического размера ровно 200000 байт (основание 10), операционная система компьютера назовет его 195.3 КБ (база 2).

    В базе 10 мы знаем, что наибольшее числовое значение, которое мы можем представить тремя цифрами, — 999. Это 9 + 90 + 900 = 999. Когда мы считаем десятками, 1000 требует 4 цифры, 10 3 = 1000, что является может содержать более трех цифр. Двоичная база 2 работает точно так же, наибольшее возможное число в 8 битах равно 255, потому что 2 8 = 256 (что составляет 9 бит). Итак, 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255. И 16 битов могут содержать адреса 0..65535. 2 16 = 65536 — на один адрес может быть больше 16 бит.

    Единицы 1000 чрезвычайно удобны для людей, мы можем конвертировать КБ, МБ и ГБ в нашей голове, просто перемещая десятичную точку. Единицы 1024 не так-то просто, но они появились в первые дни компьютеров, когда 1024 байта были довольно большим чипом. Раньше нам приходилось точно подсчитывать байты, чтобы гарантировать, что данные поместятся в чип, а число 1024 было очень важно для программистов. Сегодня это все еще не так, фишки огромны, и точный подсчет сейчас не важен. Размер жестких дисков выражается в единицах 1000, но наши операционные системы по-прежнему любят преобразовывать размеры файлов в 1024 единицы.Нет веской причины, почему сегодня …

    Но, будучи программистом, несколько десятилетий назад мне приходилось модифицировать загрузчик компьютера в 256-байтовом PROM. Он использовался в чипах 8080 на заводских испытательных станциях, которые загружались с кассеты консоли, и мне пришлось добавить загрузку с центрального диска компьютера, если он присутствует. Я добавил код, но он оказался слишком большим. Несмотря на все мои попытки, два метода все еще были 257 байт, просто на один байт больше, чтобы поместиться в микросхему PROM. Потребовались некоторые грязные уловки, чтобы заставить его работать.Таким образом, размер памяти был очень важен в первые дни (для крошечных микросхем памяти), но сегодня наши компьютеры имеют несколько ГБ памяти и, возможно, терабайты дискового хранилища, и точные точные размеры файлов действительно не имеют большого значения. Интересный цвет, по крайней мере, для меня. 🙂

    Определение префикса единицы измерения «Мега» всегда означало миллионы (десятичные множители 1000×1000) — и это все еще означает 1000, это НЕ означает 1024. Однако размеры микросхем памяти обязательно измеряются в двоичных единицах (множитель 1024. ), и они просто неправильно присвоили термины килограмм и мега много лет назад… так что это особенный, но мы используем его таким образом. В первые дни, когда микросхемы памяти были крошечными, было полезно думать о размерах файлов в двоичном формате, когда они должны были соответствовать. Однако с тех пор микросхемы стали огромными, и файлы тоже могут быть относительно большими, и сейчас мы не будем беспокоиться о нескольких байтах.

    Обратите внимание, что вы можете видеть разные числа в разных единицах измерения для одного и того же размера файла:

    • Фоторедакторы обычно показывают размер данных изображения в двоичных единицах, либо КБ (несжатые байты, деленные на 1024) или МБ (байты, деленные на 1024 дважды, для КБ и для МБ).Некоторые редакторы (Irfanview) показывают и числа размера, и двоичное представление, и фактическое количество десятичных байтов.

      Размер изображения Photoshop показывает это следующим образом: 68,7 M в верхней части — это размер данных 68,7 МБ (без сжатия, когда они открыты в памяти). Показано 6000 x 4000 x 3 (3 байта на пиксель для обычного 24-битного цвета RGB) = 72 миллиона байтов, но 72000000 / (1024 x 1024) = 68,7 МБ размер несжатых данных в памяти . Вы можете подумать, что это сжатый файл JPG размером 12 МБ, поскольку файлы изображений обычно каким-то образом сжимаются (без потерь или с потерями), поэтому файл на диске, вероятно, меньше, чем размер данных изображения.

      Число, которое нам нужно знать, — это размер изображения в пикселях. Тогда размер изображения в байтах равен (ширина в пикселях) x (высота в пикселях), а затем x 3 (для 3 байтов на пиксель, если нормальный 24-битный цвет). Это реальный размер десятичных данных в байтах. Затем для двоичных чисел для байтов, затем делятся на 1024 байта для КБ или дважды делятся на 1024 байта для МБ. После этого вы можете вернуться к реальному десятичному количеству байтов, умножив его на 1,024 (один раз для КБ, два раза для МБ или три раза для ГБ).

    • Проводник Windows показывает размер файла в килобайтах (байты, разделенные на 1024 один раз).
    • Команда DIR в командной строке Windows показывает точный десятичный размер файла в байтах. Операционная система записывает размер файла в десятичных байтах, но обычно показывает людям значение в двоичных килобайтах или мегабайтах. Я не могу представить себе причину, по которой эта конвенция продолжается сегодня.
    • Если щелкнуть файл правой кнопкой мыши в проводнике Windows (проводник) и выбрать «Свойства», отобразится размер в КБ или МБ, а также в фактических байтах. Показаны два размера: фактический размер файла и двоичный размер. Место на диске распределяется по кластерам (сегодня для NTFS, вероятно, 4096 байт).Двоичная математика может просто сдвигать степень двойки вместо более медленного деления и умножения, но это может быть скрыто от людей, интересующихся размером файла.

    Калькулятор размера сканирования

    Существует калькулятор с большим разрешением, который знает, как сканировать, печатать и увеличивать.

    Сканирование любой фотографии размером 6×4 дюйма займет столько памяти, сколько указано в таблице ниже. Надеюсь, вы понимаете, что экстремальное разрешение быстро становится невозможным.

    Здесь вы можете ввести другое разрешение и размер сканирования, они также будут рассчитаны в последней строке таблицы ниже.Результат NaN означает, что какой-то ввод не был числом.

    Для работы этого калькулятора в вашем браузере должен быть включен JavaScript.

    Когда люди спрашивают, как исправить ошибки памяти при сканировании фотографий или документов с разрешением 9600 dpi, ответ: «не делайте этого», если у вас нет 8 гигабайт памяти и сканера 9600 dpi, и у вас есть особая причина. . Обычно правильным является сканирование с разрешением 300 dpi для повторной печати с исходным размером (600 dpi может помочь при штриховом сканировании, но обычно не для цветных фотографий или фотографий в градациях серого).

    Повторяю это еще раз: (о распространенной первой ошибке)

    Сканирование 35-миллиметрового слайда для печати с размером 8×10 дюймов — это примерно 9-кратное увеличение (приблизительное, с учетом очень незначительной обрезки).

    Цель состоит в том, что для печати размером 8×10 дюймов с разрешением 300 точек на дюйм требуется 2400×3000 пикселей.

    Работают два метода сканирования. Оба примера здесь будут сканировать с разрешением 2700 dpi:

    Scan Input size — это 35-миллиметровая пленка. Размер Output — это отпечаток 8×10 дюймов.

    Вы отмечаете размер ввода на предварительном просмотре сканера с помощью мыши.

    • Вы можете установить сканер Введите размер пленки и масштаб 100% при 9x 300 = 2700 dpi. Однако 35-миллиметровая пленка имеет соотношение сторон 3: 2, а бумага для печати 8×10 имеет соотношение сторон 4: 5, поэтому изображение придется обрезать, чтобы оно соответствовало форме бумаги. Либо обрежьте его здесь, во входном размере сканера, либо вы можете обрезать его позже. Ознакомьтесь с простой процедурой обрезки изображения по форме на бумаге. Обрезка позже обычно предлагает больше вариантов.

      Сканирование 35-миллиметровой пленки с разрешением 2700 точек на дюйм и масштабным коэффициентом 100% выходит с установленным размером пленки для печати 2700 точек на дюйм, но это тривиально масштабируется во время печати для печати размером 300 точек на дюйм 8×10 (при условии, что соотношение сторон установлено в соответствии с бумагой. ).

    • Отсканируйте 35-миллиметровую пленку, установив сканер на требуемый размер печати 8×10 дюймов. Вывод при разрешении 300 точек на дюйм (при этом на входе будет отображаться масштабный коэффициент около 900%). Если вы укажете Размер вывода как 8×10 дюймов, сканер будет кадрировать, чтобы соответствовать форме бумаги 8×10.

      Сканирование 8×10 дюймов Вывод с разрешением 300 dpi уже масштабирован до 300 dpi, для печати 8×10 прямо дома.

    Пиксели одинаковы в любом случае (A или B), примерно 2400 x 3000 пикселей.Если отправить его с инструкцией по печати 8×10, в любом случае будет 8×10. Вам действительно нужно достаточное количество пикселей (достаточно близкое), но оно не обязательно должно быть точно 300 dpi, большинство магазинов, вероятно, все равно будут печатать с разрешением 250 dpi.

    Здесь есть две точки:

    • Подумайте о разрешении сканера в точках на дюйм как о разрешении печати вывода. Если коэффициент масштабирования равен 100%, он также равен разрешению сканирования, что является обычной практикой при планировании печати копии исходного размера.Если не 100%, то разрешение сканирования — это введенное dpi x коэффициент масштабирования … 300 dpi при масштабе 900% — это разрешение сканирования 9x или 2700 dpi, создавая достаточное количество пикселей для вывода на печать 9x размера при 300 dpi.
    • Вы абсолютно НЕ хотите устанавливать ОБЕ 8×10 дюймов и 2700 dpi, что даст 21600 x 27000 пикселей (около 17 гигабайт). Вам не нужно использовать 8×10 при 2700 dpi. Эта цель будет 8х10 дюймов на выходе с разрешением 300 точек на дюйм.

    Обратите внимание, что при увеличении разрешения приведенная выше формула размера умножает стоимость памяти на это число в два раза, как по ширине, так и по высоте.Стоимость памяти для изображения увеличивается пропорционально квадрату разрешения. Квадрат, скажем, 300 dpi — довольно большое число (более чем в два раза больше квадрата 200).

    Разрешение сканирования и разрешение печати — две очень разные вещи. Идея состоит в том, что мы могли бы отсканировать примерно 1 x 1 дюйм пленки с разрешением, скажем, 2400 dpi, а затем распечатать его в 8-кратном размере с разрешением 300 dpi и размером 8 x 8 дюймов. Мы всегда хотим печатать фотографии с разрешением около 300 dpi, большее разрешение сканирования предназначено только для целей увеличения.

    Коэффициент увеличения — это разрешение сканирования / разрешение печати.При сканировании с разрешением 600 dpi будет напечатан двукратный размер с разрешением 300 dpi.

    Подчеркиваем, если это не маленькая пленка, которую нужно увеличить, вам не нужно сканировать с высоким разрешением бумаги формата Letter. Вам может понадобиться отсканированное изображение с разрешением 300 dpi, чтобы напечатать его в исходном размере.

    Когда мы удваиваем разрешение сканирования, стоимость памяти увеличивается в 4 раза. Умножьте разрешение на 3, и стоимость памяти увеличится в 9 раз и т. Д. Таким образом, это кажется очень ясным аргументом в пользу использования только того разрешения, которое нам действительно необходимо для улучшения результатов изображения для цели работы.Более того, это пустая трата времени. Часто это даже больно. Ну виртуальная боль. <усмешка>


    Авторские права © 1997-2021, Уэйн Фултон — Все права защищены.

    PNG Спецификация: представление данных

    PNG Спецификация: представление данных

    REC-png.html

    Рекомендация W3C

    01 октября 1996 г.


    Предыдущая страница

    Следующая страница

    Содержание


    В этой главе обсуждаются основные представления данных, используемые в файлах PNG,
    а также ожидаемое представление данных изображения.

    2.1. Целые числа и порядок байтов

    Все целые числа, для которых требуется более одного байта, должны быть в сетевом байте.
    порядок: сначала идет старший байт, затем
    менее значимые байты в порядке убывания значимости (MSB LSB
    для двухбайтовых целых чисел, B3 B2 B1 B0 для четырехбайтовых целых чисел). sampledepth.

    Выборочные значения не обязательно линейны; то
    Блок gAMA определяет гамма-характеристику источника.
    устройства, и зрителям настоятельно рекомендуется правильно компенсировать это.
    Видеть
    Гамма-коррекция.

    Исходные данные с точностью не напрямую
    поддерживаемый в PNG (например, 5 бит / образец истинного цвета) должен быть масштабирован
    до следующей более высокой поддерживаемой разрядности. Это масштабирование обратимо
    без потери данных, что снижает количество обращений
    с чем приходится справляться декодерам.
    См. Рекомендации для энкодеров:
    Масштабирование глубины образца
    и рекомендации для декодеров:
    Изменение масштаба глубины сэмпла.

    2.3. Макет изображения

    По сути, изображение PNG представляет собой массив прямоугольных пикселей с
    пиксели отображаются слева направо в каждой строке развертки, а строки развертки
    появляются сверху вниз. (Для прогрессивного отображения
    данные могут фактически передаваться в другом порядке; видеть
    Порядок данных с чересстрочной разверткой.)
    Размер каждого пикселя определяется глубиной бит ,
    который представляет собой количество битов на выборку в данных изображения.

    Поддерживаются три типа пикселей:

    • Пиксель с индексированным цветом представлен одним образцом
      это индекс в поставляемой палитре.Битовая глубина изображения
      определяет максимальное количество элементов палитры, но не цвет
      точность в палитре.
    • Пиксель оттенков серого представлен одним образцом, который
      это уровень оттенков серого, где ноль — черный, а наибольшее значение для
      битовая глубина белого цвета.
    • Пиксель truecolor представлен тремя образцами:
      сначала появляется красный (ноль = черный, максимум = красный), затем
      зеленый (ноль = черный, максимум = зеленый), затем
      синий (ноль = черный, максимум = синий). Битовая глубина определяет размер
      каждый образец, а не общий размер пикселя.

    По желанию, полутоновые и полноцветные пиксели могут также включать альфа-канал.
    образец, как описано в следующем разделе.

    Пиксели всегда упаковываются в строки развертки без потери битов между
    пикселей. Пиксели размером меньше байта никогда не пересекают границы байта; Они
    упаковываются в байты с крайним левым пикселем в старших битах
    байта, самый правый в младших битах. Допустимая битовая глубина
    и типы пикселей ограничены, так что во всех случаях упаковка
    просто и эффективно.

    PNG позволяет использовать пиксели с несколькими выборками только с 8- и 16-битными выборками, поэтому
    несколько выборок одного пикселя никогда не упаковываются в один байт.
    16-битные выборки хранятся в сетевом порядке байтов (сначала MSB).

    Строки сканирования всегда начинаются на границах байтов. Когда пиксели
    менее 8 бит, а ширина строки развертки не делится на
    количество пикселей на байт, младшие биты в последнем байте
    каждой строки сканирования тратятся впустую. Содержимое этих потраченных впустую битов
    не указаны.bitdepth) -1 представляет собой полностью непрозрачный пиксель. Промежуточные значения
    указывают частично прозрачные пиксели, которые можно комбинировать с
    фоновое изображение, чтобы получить составное изображение. (Таким образом, альфа действительно
    степень непрозрачности пикселя. Но большинство людей называют альфу
    предоставляя информацию о прозрачности, а не о непрозрачности, и мы
    продолжайте этот обычай здесь.)

    Альфа-каналы могут быть включены в изображения с 8 или 16
    бит на выборку, но не с изображениями, имеющими менее 8 бит на выборку.
    образец.Альфа-образцы представлены с той же используемой битовой глубиной
    для образцов изображений. Альфа-образец для каждого пикселя сохраняется
    сразу после образцов пикселя в оттенках серого или RGB.

    На значения цвета, хранящиеся для пикселя, не влияет альфа-значение.
    присваивается пикселю. Это правило иногда называют «несвязанным».
    или «без предварительного умножения» альфа. (Другой распространенный метод — хранить
    значения выборки, предварительно умноженные на альфа-фракцию; по сути, такой
    изображение уже скомпоновано на черном фоне.PNG делает
    , а не , используют предварительно умноженную альфа.)

    Контроль прозрачности также возможен без затрат на хранение
    полный альфа-канал. В изображении с индексированным цветом
    альфа-значение может быть определено для каждой записи палитры. В
    изображения в градациях серого и полноцветные, одно
    значение пикселя можно определить как «прозрачное». Эти
    методы контролируются типом вспомогательного блока tRNS.

    Если нет ни альфа-канала, ни блока tRNS, все пиксели в
    изображение следует рассматривать как полностью непрозрачное.

    Зрители могут частично или не поддерживать контроль прозрачности.

    См. Обоснование:
    Альфа без предварительного умножения,
    Рекомендации для энкодеров:
    Создание альфа-канала,
    и рекомендации для декодеров:
    Обработка альфа-канала.

    2,5. Фильтрация

    PNG позволяет фильтровать данные изображения перед тем, как
    сжатый. Фильтрация может улучшить сжимаемость
    данных. Сама по себе ступень фильтрации не уменьшает размер
    данные. Все фильтры PNG работают без потерь.

    PNG определяет несколько различных алгоритмов фильтрации, включая «Нет».
    что указывает на отсутствие фильтрации. Алгоритм фильтрации указан для
    каждую строку сканирования байтом типа фильтра, который предшествует отфильтрованному
    строка сканирования в потоке данных до сжатия. Интеллектуальный кодировщик
    может переключать фильтры с одной строки развертки на другую. Метод для
    выбор используемого фильтра зависит от кодировщика.

    См. Алгоритмы фильтрации
    и Обоснование:
    Фильтрация.

    2.6. Порядок данных с чересстрочной разверткой

    Изображение PNG может быть сохранено в чересстрочном порядке, чтобы разрешить прогрессивную развертку.
    отображать.Цель этой функции — позволить изображениям «исчезнуть»
    в «, когда они отображаются на лету. Слегка чередование
    увеличивает размер файла в среднем, но дает пользователю значимый
    отображать гораздо быстрее.
    Обратите внимание, что декодеры должны иметь возможность читать чересстрочные изображения,
    независимо от того, выполняют ли они на самом деле прогрессивное отображение.

    При использовании метода чересстрочной развертки 0 пиксели сохраняются последовательно слева направо,
    и строки развертки последовательно сверху вниз (без чередования).

    Метод 1 чередования, известный как Adam7 в честь его автора, Адама М.Костелло,
    состоит из семи отдельных проходов по изображению. Каждый проход передает
    подмножество пикселей изображения. Проход, в котором каждый пиксель
    передается определяется путем копирования следующего шаблона 8 на 8
    по всему изображению, начиная с левого верхнего угла:

       1 6 4 6 2 6 4 6
       7 7 7 7 7 7 7 7
       5 6 5 6 5 6 5 6
       7 7 7 7 7 7 7 7
       3 6 4 6 3 6 4 6
       7 7 7 7 7 7 7 7
       5 6 5 6 5 6 5 6
       7 7 7 7 7 7 7 7
     

    В каждом проходе выбранные пиксели передаются слева направо.
    внутри строки развертки, и выбранные строки развертки последовательно сверху вниз
    Нижний.Например, проход 2 содержит пиксели 4, 12, 20 и т. Д. Строк развертки 0, 8,
    16 и т. Д. (Нумерация от 0,0 в верхнем левом углу). Последний проход
    содержит все строки развертки 1, 3, 5 и т. д.

    Данные в каждом проходе расположены так, как если бы это был
    полное изображение соответствующих размеров.
    Например,
    если полное изображение имеет размер 16 на 16 пикселей, то при переходе 3 будет
    содержат две строки развертки, каждая из которых содержит четыре пикселя. Когда пиксели
    меньше 8 бит, каждая такая строка развертки дополняется по мере необходимости, чтобы заполнить
    целое число байтов (см. Макет изображения).Фильтрация выполняется на этом уменьшенном изображении обычным способом, а
    байт типа фильтра передается перед каждой из его строк развертки (см.
    Алгоритмы фильтрации). Обратите внимание, что
    порядок передачи определяется таким образом, что все строки развертки, передаваемые в
    в проходе будет такое же количество пикселей; это необходимо для
    правильное применение некоторых фильтров.

    Внимание: Если изображение содержит менее пяти столбцов
    или менее пяти строк, некоторые проходы будут полностью пустыми. Энкодеры
    и декодеры должны правильно обрабатывать этот случай.В частности, байты типа фильтра связаны только с непустыми
    развертки; в пустом проходе нет байтов типа фильтра.

    См. Обоснование:
    Переплетение
    и рекомендации для декодеров:
    Прогрессивный дисплей.

    2.7. Гамма-коррекция

    Изображения PNG могут указывать через блок gAMA гамму
    характеристика изображения по отношению к исходной сцене.
    Программам отображения настоятельно рекомендуется использовать это
    информация, а также информация об устройстве отображения, которое они используют
    и комнатное освещение, чтобы представить изображение зрителю таким образом, чтобы
    воспроизводит то, что видел первоначальный автор изображения, так же точно, как
    возможный.См. Руководство по гамме, если вы
    еще не знакомы с проблемами гаммы.

    Гамма-коррекция не применяется к альфа-каналу, если таковой имеется. Альфа
    образцы всегда представляют собой линейную долю полной непрозрачности.

    Для высокоточных приложений точная цветность RGB
    данные в PNG-изображении можно указать через блок cHRM,
    обеспечивает более точное соответствие цветов, чем гамма-коррекция
    в одиночку обеспечит.
    См. Учебник по цвету, если вы еще этого не сделали.
    знаком с проблемами представления цвета.

    См. Обоснование:
    Почему гамма ?,
    Рекомендации для энкодеров:
    Обработка гаммы энкодера,
    и рекомендации для декодеров:
    Обработка гаммы декодера.

    2,8. Текстовые строки

    Файл PNG может хранить текст, связанный с изображением, например изображение.
    описание или уведомление об авторских правах. Ключевые слова используются для обозначения того, что
    каждая текстовая строка представляет.

    ISO 8859-1 (Latin-1) — это набор символов, рекомендуемый для использования в тексте.
    струны
    [ISO-8859].
    Этот набор символов является надмножеством 7-битного ASCII.

    Коды символов, не определенные в Latin-1, не должны использоваться, потому что
    они не имеют независимого от платформы значения. Если код, отличный от Latin-1,
    появляются в текстовой строке PNG, его интерпретация будет различаться в зависимости от
    платформы и декодеры.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *