14756

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

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

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

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

Русский

2013-06-09

255.5 KB

10 чел.

Цель работы:

Написать программу, реализующую просмотр графического файла (формат 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.


 

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

16271. Исследование устройства кодирующего системы SЕCАМ 808 KB
  Лабораторная работа №3 Исследование устройства кодирующего системы SЕCАМ 1 Цель работы: Изучить состав устройства кодирующего ПБ29. Получить практические навыки по работе с устройством кодирующим. 2 Литература: 2.1 Джакония В.Е. Телевиде...
16272. Исследование спектра сигнала спутника Hot Biord 1.7 MB
  Лабораторная работа №4 Исследование спектра сигнала спутника Hot Biord 1 Цель работы: 1.1 Научиться пользоваться спутниковым ресивером. 1.2 Научиться настраиваться на выбранный транспондер и фиксировать его в памяти прибора DL4. 1.2 Научиться заносить данные прибора в ...
16274. Стандарт цифрового телевидения 4:2:2 290 KB
  Лабораторная работа №8 Стандарт цифрового телевидения 4:2:2 1 Цель работы: 1.1 Изучить метод аналогоцифрового преобразования в стандарте 4:2:2. 2 Литература: 2.1 Приложение А. 2.2 Приложение Б. 3 Подготовка к работе: 3.1 Повторить теоретический материал по стандар
16275. Исследование спутникового приемника DCH-4000P-42-S2 354 KB
  Лабораторная работа №100 Исследование спутникового приемника DCH4000P42S2 1 Цель работы: 1.1 Научиться пользоваться спутниковым ресивером. 1.2 Научиться настраиваться на выбранный транспондер 2 Литература: 2.1 Приложение А. 2.2 Приложение Б. 2.3 Приложение В. 3
16276. Общие сведения, простой монтаж в Adobe Premiere Pro 2.0 819 KB
  Лабораторная работа №1 Общие сведения простой монтаж в Adobe Premiere Pro 2.0 1 Цель работы 1.1 Получить первичные навыки работы с программой нелинейного монтажа Adobe Premiere Pro 2.0. 1.2 Научиться производить захват видеоинформации с внешних устройств при помощи Adobe Premiere. 1.3 Научит...
16277. Типы эффектов в Adobe Premire Pro 2.0 123 KB
  Лабораторная работа №2 Типы эффектов в Adobe Premire Pro 2.0 1 Цель работы 1.1 Изучить типы эффектов в программе Adobe Premire Pro 2.0. 1.2 Получить практические навыки работы с эффектами в Adobe Premiere Pro 2.0. 1.3 Смонтировать видеоролик с использованием эффектов. 2 Литература 2.1 Приложе
16278. Создание титров в Adobe Premiere Pro 2.0 187.5 KB
  Лабораторная работа №3 Создание титров в Adobe Premiere Pro 2.0 1 Цель работы 1.1 Изучить методы создания и редактирования титров в программе Adobe Premiere Pro 2.0. 1.2 Смонтировать видеоролик с применением титров/субтитров. 2 Литература 2.1 Приложение Общие сведения о титрах. ...
16279. Работа со звуком в Adobe Premiere Pro 2.0 183.5 KB
  Лабораторная работа №4 Работа со звуком в Adobe Premiere Pro 2.0 1 Цель работы 1.1 Получить практические навыки при работе со звуковыми файлами в программе Adobe Premiere Pro 2.0. 1.3 Смонтировать видеоролик с использованием эффектов. 2 Литература 2.1 Приложение Работа со звуком. ...