14756

Написать программу, реализующую просмотр графического файла (формат BMP)

Лабораторная работа

Информатика, кибернетика и программирование

Цель работы: Написать программу реализующую просмотр графического файла формат BMP. Программа должна: загружать и выводить на экран произвольный файл с использованием файловых функций; читать все файлы с цветовой палитрой до 256 цветов black/whitegrey16256; выводи

Русский

2013-06-09

255.5 KB

12 чел.

Цель работы:

Написать программу, реализующую просмотр графического файла (формат BMP). Программа должна:

  •  загружать и выводить на экран произвольный файл (с использованием файловых функций);
  •  читать все файлы с цветовой палитрой до 256 цветов (black/white,grey,16,256);
  •  выводить информацию из заголовков файла (тип, размер, разрешение, использование сжатия, к-во цветов, ...), а также цветовую палитру;

Код программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace TSOS_LAB1_Final

{

   public partial class Form1 : Form

   {

       public String bfType;

       public Int32 bfSize;

       public Int16 bfReserved1;

       public Int16 bfreserved2;

       public Int32 bfOffBits;

       public Int32 bfSizeheader;

       public Int32 bfShirinaImage;

       public Int32 bfVisotaImage;

       public Int16 bfNumberPlosk;

       public Int16 bfBitPixel;

       public Int32 bfCompress;

       public Int32 bfSizeRastMass;

       public Int32 bfGorSize;

       public Int32 bfVertSize;

       public Int32 bfNumberColors;

       public Int32 bfMainColors;

       public Form1()

       {

           InitializeComponent();

       }

       private void button1_Click(object sender, EventArgs e)

       {

           openFileDialog1.Filter = "bmp |*.bmp";

           openFileDialog1.ShowDialog();

           BinaryReader bReader = new BinaryReader(File.Open(openFileDialog1.FileName, FileMode.Open));

           bfType = new string(bReader.ReadChars(2));

           bfSize = bReader.ReadInt32();

           bfReserved1 = bReader.ReadInt16();

           bfreserved2 = bReader.ReadInt16();

           bfOffBits = bReader.ReadInt32();

           bfSizeheader = bReader.ReadInt32();

           bfShirinaImage = bReader.ReadInt32();

           bfVisotaImage = bReader.ReadInt32();

           bfNumberPlosk = bReader.ReadInt16();

           bfBitPixel = bReader.ReadInt16();

           bfCompress = bReader.ReadInt32();

           bfSizeRastMass = bReader.ReadInt32();

           bfGorSize = bReader.ReadInt32();

           bfVertSize = bReader.ReadInt32();

           bfNumberColors = bReader.ReadInt32();

           bfMainColors = bReader.ReadInt32();

           

           bReader.Close();

           String CompressType=0.ToString();

           if (bfCompress == 0 || bfCompress == 3 || bfCompress == 6)

               CompressType = "Без сжатия";

           else if (bfCompress == 1 || bfCompress == 2)

               CompressType = "RLE";

           else if (bfCompress == 4)

               CompressType = "JPEG";

           else if (bfCompress == 5)

               CompressType = "PNG";

           Bitmap original_image = new Bitmap(openFileDialog1.FileName);

           pictureBox1.Image = original_image;

           pictureBox1.Show();

           String message = "Сигнатура файла: " + bfType + "\n Размер файла: " + bfSize.ToString() +

                            "\n Местонахождение данных растрового массива: " + bfOffBits.ToString() +

                            "\n Длина заголовка растрового массива: " + bfSizeheader.ToString() +

                            "\n Ширина изобрадения: " + bfShirinaImage.ToString() + "\n Высота изображения: " +

                            bfVisotaImage.ToString() + "\n Число цевтовых плоскостей: " + bfNumberPlosk +

                            "\n Бит/пиксел: " + bfBitPixel + "\n Метод сжатия: " + CompressType +

                            "\n Длина растрового массива: " + bfSizeRastMass + "\n Горизонтальное разрешение: " +

                            bfGorSize + "\n Вертикальное разрешение: " + bfVertSize +

                            "\n Количество цветов изображения: " + bfNumberColors + "\n Количество основных цветов: " +

                            bfMainColors;

           

           MessageBox.Show(message);

       }

   }

}

Результат работы:

Вывод: в ходе работы освоили приемы обработки графических изображений в формате BMP.


 

А также другие работы, которые могут Вас заинтересовать

19150. Радиационные характеристики отработавшего ядерного топлива (ОЯТ). Хранение и транспортировка ОЯТ 221 KB
  Лекция 14. Радиационные характеристики отработавшего ядерного топлива ОЯТ. Хранение и транспортировка ОЯТ. 14.1. Радиационные характеристики отработавшего ядерного топлива ОЯТ К радиационным характеристикам ОЯТ будем относить: активность остаточное энерговыделе
19151. Классификации реакторов АЭС. Особенности легководных, графитовых и тяжеловодных реакторов. Проблемы безопасности АЭС 65.5 KB
  Лекция 15. Классификации реакторов АЭС. Особенности легководных графитовых и тяжеловодных реакторов. Проблемы безопасности АЭС. Перспективные типы реакторов. 15.1. Классификации реакторов АЭС. Рассмотрим три классификации реакторов АЭС: по нейтронному спектру по
19152. ОСНОВНЫЕ ПОНЯТИЯ О ТЕРМОДИНАМИКЕ 73 KB
  ТЕМА 1. Основные понятия о термодинамике 1.1. Роль термодинамики в разработке и исследовании конструкционных материалов ядерных реакторов Высокочистые вещества прецизионные сплавы композиты основные материалы ядерной энергетики. Рафинирование. Термодинамическо...
19153. Внутренняя энергия. Первый закон термодинамики 61 KB
  2.2. Внутренняя энергия. Первый закон термодинамики Понятие энергии. Джоуль и калория. Первый закон термодинамики. Внутренняя энергия. Условность отсчета внутренней энергии. Изохорные процессы. Функции состояния и характеристические функции. Слово энергия
19154. Основные свойства криогенных жидкостей 175 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 1 Основные свойства криогенных жидкостей 1.1. Виды жидких хладагентов Для получения низких температур можно использовать различные криогенные жидкости которые прежде всего характеризуются температурой кипения...
19155. Теплоизоляция и принципы теплового расчета 67.5 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 2 Теплоизоляция и принципы теплового расчета Изза малой величины теплоты парообразования жидких хладагентов особенно жидкого гелия вопросы теплоизоляции рабочего объема играют ключевую роль при разработке р
19156. Теплопритоки к жидкому хладагенту 159 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 3 Теплопритоки к жидкому хладагенту. 1.Теплоподвод за счет теплопроводности твердых тел 1.1Общие закономерности Перенос тепла в твердых телах теплопроводностью при низких температурах подчиняется известным зак
19157. Теплопритоки к жидкому хладагенту. ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ 69 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 4 Теплопритоки к жидкому хладагенту. 1. Лучистый теплообмен Тепловое излучение является разновидностью электромагнитных волн. Перенос тепла излучением может происходить как в видимой 04  076 мкм так и в инфракра...
19158. Основные конструктивные схемы гелиевых криостатов 414.5 KB
  ОСНОВЫ КОНСТРУИРОВАНИЯ КРИОГЕННЫХ УСТРОЙСТВ Лекция 5 Основные конструктивные схемы гелиевых криостатов 1. Гелиевые криостаты с азотным объемом Основные конструктивные схемы гелиевых криостатов с азотным объемом. приведены на рис. 1.1. Схема криостата изображе