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.


 

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

342. Принципы функционирования различных входных цепей 283 KB
  Схема исследования входного устройства профессионального радиоприемника состоящего из противолокационного фильтра и аттенюатора. Схемы исследования низкочастотной входной цепи профессионального радиоприемника.
343. Экономическая теория. Равновесие потребителя в условиях бюджетных ограничений 249 KB
  Равновесие потребителя в условиях бюджетных ограничений. Кривая безразличия и бюджетная линия. Эффект замещения и эффект дохода. Кругооборот капиталов, основной и оборотный капитал. Основные направления антимонопольной политики.
344. Внешнеэкономическая деятельность Центрального Федерального округа России: итоги, проблемы, перспективы 297.5 KB
  Анализ внешнеэкономический деятельности региона. Расчет экономических показателей, планирование. Обобщение результатов исследования внешнеэкономической деятельности Центрального Федерального округа России. Формирование внешнеторгового контракта.
345. Социально-психологический тренинг как средство формирования лидерских качеств у старшеклассников 301.5 KB
  Теоретические аспекты формирования лидерских качеств у старшеклассников. Характеристика социально-психологического тренинга как средства формирования лидерских качеств у старшеклассников. Проектирование деятельности педагога-психолога по формированию лидерских качеств у старшеклассников посредством социально-психологического тренинга
346. Спроектировать участок механического цеха для изготовления детали Наконечник ушковый 299 KB
  Расчет контрольно–измерительного инструмента калибр–скоба 8,7h11. Характеристика существующего технологического процесса. Проектирование варианта технологического маршрута механической обработки детали Наконечник ушковый.
347. Разработка воздушного радиатора транзистора ГТ701А 668 KB
  Транзистор германиевый сплавной p-n-p универсальный. Корпус металлический со стеклянными изоляторами и гибкими выводами. Коэффициент теплоотдачи зависит от теплофизических свойств воздуха, его режима движения и геометрии омываемой поверхности.
348. Курортный горнолыжный комплекс в городе Ишимбай, республика Башкортостан 1.12 MB
  Градостроительный принцип формирования рекреационных систем. Роль и назначение проектируемой территории в формировании архитектурного облика города. Принципы архитектурно-планировочной организации рекреационных центров.
349. Определение момента инерции твердых тел с помощью маятника Максвелла 121 KB
  Момент инерции системы (тела) относительно оси вращения это скалярная величина, равная сумме произведения масс n материальных точек системы на квадраты их расстояний до рассматриваемой оси.
350. Компьютерные науки 396.5 KB
  Методические указания по выполнению бакалаврских аттестационных работ для студентов, обучающихся по направлению 6.0804 - Компьютерные науки. Требования к тематике бакалаврских аттестационных работ, их содержанию, объему и структуре пояснительной записки и графической части бакалаврской работы.