Формат Bmp-файла - Курсовая работа

бесплатно 0
4.5 27
Характеристика формата Bmp-файла: ширина и высота изображения, количество плоскостей, глубина цвета и компрессия, и его структура. Двумерные матричные преобразования. Среда разработки: Delphi 7 как быстрый и с большими возможностями язык программирования.


Аннотация к работе
Готовый графический файл требуется повернуть в плоскости экрана на заданный угол.Этот файл состоит из четырех частей: заголовка, информационного заголовка, таблицы цветов (палитры) и данных изображения. Если в файле хранится изображение с глубиной цвета 24 бита (16 млн. цветов), то таблица цветов может отсутствовать, однако в нашем, 256-цветном случае она есть. Информационный заголовок начинается с собственной длины (она может изменяться, но для 256-цветного файла составляет 40 байт) и содержит размеры изображения, разрешение, характеристики представления цвета и другие параметры. Это очень важно, поскольку палитры двух разных файлов, даже составленных из одних и тех же цветов, содержали бы их (цвета) в разном порядке, что могло существенно осложнить одновременный вывод таких изображений на экран. Имя Длина Смещение Описание Заголовок файла (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 1078 Изображение, записанное по строкам слева направо и снизу вверхDelphi 7 - быстрый и с большими возможностями язык программирования, позволяющий качественно обрабатывать графическую информацию.Это задание реализуется по следующему алгоритму:-Создание битовых карт для хранения текущего и измененного изображения. bmp файл компрессия программированиеОперационная система Windows9x и выше. Цветной монитор и видеоадаптер поддерживающий режим SVGA способные работать с полноцветными изображениями, с глубиной цвета 24 битаДанная процедура реализует создание специальных переменных, хранящих изображение в формате bmp, используя стандартный тип данных в Delphi Tbitmap. procedure TFORM1.OPENPICTURE1Accept(Sender: TOBJECT); В этой процедуре происходит реализация таких действий как:-отчистка рабочего поля. Здесь угол поворота увеличивается на 10 градусов, после чего вызывается процедура поворота(способом 1) procedure TFORM1.RIGHTEXECUTE(Sender: TOBJECT); Здесь угол поворота уменьшается на 10 градусов, после чего вызывается процедура поворота(способом 1) procedure TFORM1.MOREEXECUTE(Sender: TOBJECT); Эта процедура позволяет увеличить на 10% коэффициент масштабирования, при этом коэффициент масштабирования проверяется на максимально допустимое значение.Глобальные переменные: Form1: TFORM1 рабочее поле bitmap,Temp,Temp1:TBITMAP массивы для bmp angle:Integer угол в градусах scal: word=100коэфф. масштабирования в % offs :integer смещение центра изображения относительно начала рабочего поля procedure TFORM1.OPENPICTURE1Accept(Sender: TOBJECT) загрузка картинки; i,j, :integerглобальные координаты(в рабочем поле) x,y:integer локальные координаты (внутри массивов) procedure TFORM1.ROTATEEXECUTE(Sender: TOBJECT); поворот i,j:integerглобальные координаты(в рабочем поле) x,y:integerцентр изображения x_n,y_n:integer координаты новой точки r:realрадиус-вектор x1,y1:integerрасстояние между текущей точкой и центром изображения Prime, JPRIME : integer ; расстояние от правого, нижнего края большого изображения до центраSAVEPICTURE1: TSAVEPICTURE;//сохранеие procedure OPENPICTURE1Accept(Sender: TOBJECT); //открытие картинки procedure FORMCREATE(Sender: TOBJECT); //создание форм procedure LEFTEXECUTE(Sender: TOBJECT); // запуск левого поворота procedure RIGHTEXECUTE(Sender: TOBJECT); // запуск правого поворота procedure FORMKEYDOWN(Sender: TOBJECT; var Key: Word; // нажатие кнопок procedure ROTATEEXECUTE(Sender: TOBJECT); // вращение procedure MOREEXECUTE(Sender: TOBJECT); // увеличение procedure LESSEXECUTE(Sender: TOBJECT); // уменьшение procedure RANGINGEXECUTE(Sender: TOBJECT); procedure Rotate2Execute(Sender: TOBJECT); result.Height :=Result.Width;//задаем новый квадратный массив со стороной,равной диагонали xx1:=round(result.Height/2);//ось вращения for i:=0 to Temp.Width-1 do //сохраняем новый массив для изображения for j:=0 to Temp.Height-1 do if (j>round((Temp.Height-bitmap.Height)/2))and(j<Temp.Height-round((Temp.Height-bitmap.Height)/2))and (i>round((Temp.Width-bitmap.Width)/2))and(i<Temp.Width-round((Temp.Width-bitmap.

План
Содержание

1. Постановка задачи

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

3. Среды разработки

3.1 Алгоритм

4. Описание программы

4.1 Требования к системе

4.2 Руководство пользователю

4.3 Описание процедур программы

4.4 Описание переменных

5. Листинг программы

1. Постановка задачи
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?