9. Растровые рисунки
Краткие теоретические сведения
Задание к работе
Для просмотра и редактирования файлов в виде шестнадцатеричных кодов рекомендуется использовать редактор frhed.
- Формат BMP
- Откройте файл fig.bmp в редакторе frhed и с помощью средства просмотра фотографий Windows (или другой программе для просмотра фотографий). Откройте описание формата BMP и сверяйте по нему следующие действия.
- Посмотрите описание структуры «BITMAPFILEHEADER». Убедитесь, что первые два байта содержат код 424D, что означает, что этот файл в формате BMP.
- Следующие 4 байта задают размер файла. Они записаны в так называемом формате little-endian, что означает, что первый байт (по адресу 0x2) это младший 256-битный разряд всего числа. В некоторых случаях применяется формат big-endian, в котором первый байт это старший разряд. С помощью калькулятора переведите число в десятичную систему и сравните его с размером файла, сообщаемом операционной системой.
- 4 байта начиная с 10 задают адрес пиксельных данных, т.е. адрес байт в которых хранятся значения цветов пикселей. Запишите или запомните его.
- Посмотрите описание структуры «BITMAPINFO». Определите версию этой структуры по ее размеру.
- Найдите в полях этой структуры ширину и высоту пиксельных данных, а также количество бит на пиксель. Перемножив эти три числа, найдите количество байт, занимаемых пиксельными данными.
- Откройте частичное шестнадцатеричное представление файла fig1.bmp (в frhed меню «File–Open partially»). Подберите размеры окна так, чтобы в нем отображалось ровно такое количество строчек, которое было равно высоте пиксельных данных. Сравните такое представление данных с отображением файла fig1.bmp в окне средства просмотра фотографий.
- Измените значение первых трех байт на «00» и сохраните файл. Что произошло с рисунком?
- Последовательно изменяйте значения первых трех байт на «ff», сохраняя каждый раз файл. Каким цветам соответствуют каждый их этих байтов?
- Проверьте все варианты, в которых два первых байта из трех равны «ff», а третий «00». Объясните полученные результаты.
- Свойства растровых изображений
- Создайте пустой документ Microsoft Word и вставьте в него файл fig1.bmp. Увеличьте изображение в 10 раз («Формат рисунка–Рисунка-Масштаб–1000%»). Объясните, что произошло с изображением?
- Откройте в MS Paint рисунок fig1.bmp, увеличьте максимально его изображение. Нарисуйте диагональную линию минимальной толщины. Прочитайте про алгоритмы Брезенхэма и Ву и определите, какой из этих алгоритмов используется в MS Paint.
- Сжатие изображений
- С помощью программы Caesium постройте таблицу соответствия между качеством сжатия и размером выходного файла для файла fig1.bmp (в таблице должны быть все значения качества сжатия кратные 20). Оцените визуально минимальное качество сжатия, при котором не заметны искажения.
- Повторите предыдущий пункт для фотографии из 2 лабораторной работы.