Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
моя записка.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
681.98 Кб
Скачать

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 содержит как функции измерения текущего времени, так и функции для создания виртуальных таймеров – устройств, извещающих приложение об истечении заданного интервала времени. Именно этот аспект сыграл главную роль в выборе интерфейса разработки приложения данного курсового проекта.