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.


 

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

49169. АНАЛИЗ ФИНАНСОВОГО СОСТОЯНИЯ И РЕЗУЛЬТАТОВ ФИНАНСОВОЙ ДЕЯТЕЛЬНОСТИ ПРЕДПРИЯТИЯ 12.68 MB
  В связи с этим приобретает огромное значение оценка финансовых результатов деятельности и финансового состояния предприятия в настоящем прошлом и будущем. С помощью анализа финансового состояния предприятия и хозяйственной деятельности вырабатываются стратегия и тактика развития предприятия обосновываются планы и управленческие...
49170. Применение просвечивающего электронного микроскопа 895.5 KB
  Конструкция просвечивающего электронного микроскопа. Применение просвечивающего электронного микроскопа. Во-вторых существенное повышение до 1 Å и менее разрешающей способности электронных микроскопов что сделало их конкурентоспособными с автоионными микроскопами в получении прямых изображений кристаллической решетки. Сегодня трудно себе представить биологическую медицинскую физическую металлографическую химическую лаборатории без оптического микроскопа: исследуя капельки крови и срез ткани медики составляют заключение о состоянии...
49172. Система горячего водоснабжения, центральный тепловой пункт (ЦТП) и тепловые сети от ЦТП до присоединенных зданий 249 KB
  В ЦТП должна быть предусмотрена противокоррозийная и противонакипная обработка воды согласно СНиП Температура горячей воды должна быть: в местах водоразбора 55С на выходе из ЦТП 6065С. Определение температуры воды в подающей трубе теплосети в точке излома повышенного графика. Максимальный секундный расход воды на расчетном участке сети л с при гидравлическом расчете теплопроводов системы горячего водоснабжения определяется по формуле...
49173. Краниальная остеопатия 6.2 MB
  На протяжении десяти лет он пытался избавиться от этой идеи, но не смог, и решил доказать ее ошибочность. Следующие двадцать лет он изучал кости черепа. Учебники предлагали скудную информацию. Но чем глубже он вникал в проблему, тем логичнее казалось его первоначальное предположение. Сатерлэнд поставил много экспериментов на самом себе, производил и выправлял дефекты на собственном черепе при помощи оригинальных механических приспособлений.
49176. Расчёт структуры осесимметричных стационарных электромагнитных полей 291.5 KB
  Решение проводится в цилиндрических координатах связанных с центром цилиндра r радиусвектор точки наблюдения ось z направлена вдоль приложенного электрического поля рисунок 1. Если совместить ось z цилиндрической системы координат с осью цилиндра перпендикулярной E0 то потенциал поля не будет зависеть от координаты z и уравнение Лапласа запишется в виде ∆φ= 1.11 Величину служащую для описания...
49177. Комплексная система защиты информации на предприятии. Методические указания 204.5 KB
  Организация и технология защиты информации профиль подготовки: Специалист по защите информации. Организация и технология защиты информации; учебными планами по специальностям; общими указаниями по организации и методике проведения курсового проектирования в вузах; положением о курсовых работах НОО ВПО НП ТИЭИ. Данные методические указания предназначены для студентов 5го курса для выполнении...