Помощь в написании студенческих работ
Антистрессовый сервис

Постановка задачи. 
Формат Bmp-файла

РефератПомощь в написанииУзнать стоимостьмоей работы

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

Постановка задачи. Формат Bmp-файла (реферат, курсовая, диплом, контрольная)

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

Теоретическое введение

Формат Bmp-файла По решению разработчиков формат Bmp-файла не привязан к конкретной аппаратной платформе. Этот файл состоит из четырех частей: заголовка, информационного заголовка, таблицы цветов (палитры) и данных изображения. Если в файле хранится изображение с глубиной цвета 24 бита (16 млн. цветов), то таблица цветов может отсутствовать, однако в нашем, 256-цветном случае она есть. Структура каждой из частей файла, хранящего 256-цветное изображение, дана в таблице Заголовок файла начинается с сигнатуры «BM», а затем идет длина файла, выраженная в байтах. Следующие 4 байта зарезервированы для дальнейших расширений формата, а заканчивается этот заголовок смещением от начала файла до записанных в нем данных изображения. При 256 цветах это смещение составляет 1078 — именно столько и пришлось пропустить в нашей прошлой программе, чтобы добраться до данных.

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

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

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

Глубина цвета считается важнейшей характеристикой способа представления цвета в файле и измеряется в битах на точку. В данном случае она равна 8.

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

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

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

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

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

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

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

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

Структура Bmp-файла.

Имя Длина Смещение Описание Заголовок файла (BitMapFileHeader).

Type.

  • 2
  • 0

Сигнатура «BM» .

Size.

  • 4
  • 2

Размер файла.

Reserved 1.

  • 2
  • 6

Зарезервировано.

Reserved 2.

  • 2
  • 8

Зарезервировано.

OffsetBits.

  • 4
  • 10

Смещение изображения от начала файла Информационный заголовок (BitMapInfoHeader).

Size.

  • 4
  • 14

Длина заголовка.

Width.

  • 4
  • 18

Ширина изображения, точки.

Height.

  • 4
  • 22

Высота изображения, точки.

Planes.

  • 2
  • 26

Число плоскостей.

BitCount.

  • 2
  • 28

Глубина цвета, бит на точку.

Compression.

  • 4
  • 30

Тип компрессии (0 — несжатое изображение).

SizeImage.

  • 4
  • 34

Размер изображения, байт.

XpelsPerMeter.

  • 4
  • 38

Горизонтальное разрешение, точки на метр

YpelsPerMeter.

  • 4
  • 42

Вертикальное разрешение, точки на метр

ColorsUsed.

  • 4
  • 46

Число используемых цветов (0 — максимально возможное для данной глубины цвета).

ColorsImportant.

  • 4
  • 50

Число основных цветов Таблица цветов (палитра) (ColorTable).

ColorTable.

  • 1024
  • 54
  • 256 элементов по 4 байта

Данные изображения (BitMap Array).

Image.

Size.

Изображение, записанное по строкам слева направо и снизу вверх.

Двумерные матричные преобразования Рассмотрим преобразования координат точек на плоскости. На рис. 1 точка перенесена в точку .

Операция переноса или трансляции точки в точку.

Рис. 1 Операция переноса или трансляции точки в точку .

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

Постановка задачи. Формат Bmp-файла.

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

Операция масштабирования.

Рис. 2. Операция масштабирования .

Постановка задачи. Формат Bmp-файла.

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

Постановка задачи. Формат Bmp-файла.

.

Постановка задачи. Формат Bmp-файла.

Рассмотрим далее операцию вращения точки на некоторый угол относительно начала координат. На рисунке 24 точка переходит в точку поворотом на угол .

Операция поворота точки на угол.

Рис. 24. Операция поворота точки на угол .

Найдем преобразование координат точки, А в точку В. Обозначим угол, который составляет радиус-вектор с осью Оx. Пусть r — длина радиус-вектора, тогда.

Постановка задачи. Формат Bmp-файла.
Постановка задачи. Формат Bmp-файла.
Постановка задачи. Формат Bmp-файла.
Постановка задачи. Формат Bmp-файла.

Так как и, то подставляя эти выражения в уравнения для и, получаем:

Постановка задачи. Формат Bmp-файла.
Постановка задачи. Формат Bmp-файла.

В матричном виде вращение точки, А на угол выглядит следующим образом:

Показать весь текст
Заполнить форму текущей работой