
- •Введение
- •1 Аналитический обзор состояния вопроса
- •1.1 Краткие сведения о dll
- •1.2 Общие сведения о bmp - файлах
- •1.3 Dib и ddb файлы
- •1.4 Обзор структуры файла
- •1.4.3 Палитра
- •1.4.4 Данные изображения
- •1.5 Дамп памяти
- •2 Постановка задачи
- •3 Проектирование программного обеспечения
- •3.1 Выбор среды разработки динамической библиотеки
- •3.2 Проектирование структуры Dll
- •3.3 Макет интерфейса
- •3.4 Проектирование алгоритмов
- •4.4 Реализация алгоритма сохранения данных в файл
- •5 Тестирование программного обеспечения
- •5.1 Сравнение выводимых данных
- •5.2 Тест на корректность работы диалогов
- •Заключение
- •Список использованной литературы
- •Список листов графической части
- •Приложение а
- •Приложение б
1.4.3 Палитра
Палитра может содержать последовательность четырёхбайтовых полей по числу доступных цветов (256 для 8-битного изображения). Три младшие байта каждого поля определяют интенсивность красной, зелёной и синей компоненты цвета, старший байт не используется. Каждый пиксел изображения описан в таком случае одним байтом, содержащим номер поля палитры, в котором сохранен цвет этого пиксела.
Если пиксел изображения описывается 16-битным числом, палитра может хранить три двухбайтных значения, каждое из которых пределяет маску для извлечения из 16-битного пиксела красной, зелёной и синей компонент цвета.
1.4.4 Данные изображения
Последовательность пикселов, записанных в том или ином виде. Пикселы хранятся построчно, снизу вверх. Каждая строка изображения дополняется нулями до длины, кратной четырём байтам.
В bmp файлах с глубиной цвета 24 бита, байты цвета каждого пиксела хранятся в порядке BGR (Blue,Green,Red).
B bmp файлах с глубиной цвета 32 бита, байты цвета каждого пиксела хранятся в порядке BGRA (Blue,Green,Red,Alpha)[1].
1.5 Дамп памяти
Дамп памяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации). Дамп также можно сохранить вручную через отладчик или любую другую специальную программу[2].
2 Постановка задачи
В соответствии с темой курсового проекта разработать динамическую библиотеку, которая демонстрирует структуру файла формата bmp. Данная библиотека должна обладать следующим функционалом:
Открытие bmp-файла при помощи стандартного диалога открытия файлов;
Вывод структуры файла формата bmp;
Вывод дампа файла формата bmp;
Расшифровка дампа;
Сохранение всей информации в файл;
Условия разработки библиотеки:
Операционная система – Microsoft Windows Seven Ultimate;
Среда разработки – Microsoft Visual Studio 2010;
Интерфейс программирования – Win32 API.
3 Проектирование программного обеспечения
3.1 Выбор среды разработки динамической библиотеки
Для разработки приложения была использована среда визуального проектирования Microsoft Visual Studio 2010, языком разработки – С++.
С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров заканчивая самыми большими супер-эвм, и практически для всех операционных систем.
C++ чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:
поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП;
имеется возможность работы на низком уровне с памятью, адресами, портами;
возможность создания обобщённых алгоритмов для разных типов данных, их специализация и вычисления на этапе компиляции, используя шаблоны.
API – это аббревиатура названия Application Programming Interface (интерфейс прикладного программирования). API представляет собой совокупность функций и инструментов, позволяющих программисту создавать приложения, работающие в некоторой среде. Win32 API – это набор функций для создания программ, работающих под управлением Microsoft Windows. Все функции этого набора являются 32-битными, что отражено в названии интерфейса.
Win32 API содержит как функции измерения текущего времени, так и функции для создания виртуальных таймеров – устройств, извещающих приложение об истечении заданного интервала времени. Именно этот аспект сыграл главную роль в выборе интерфейса разработки приложения данного курсового проекта.