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.


 

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

85935. Оценка эффективности лизинговой операции 848 KB
  Одним из путей формирования интеллектуального капитала предприятия является использование лизинга. Лизинг − это вид инвестиционной деятельности при котором лизингодатель лизинговая компания приобретает у поставщика оборудование предмет лизинга и затем сдает его в аренду за определенную плату...
85936. Планирование маркетинга 1.17 MB
  В начале игры показатель количество целей экспонирования товаров торговых точек равен 3 у всех фирм в каждом канале распространения товаров. Каждая фирма имеет по 20 торговых представителей которые поровну распределены между двумя каналами распространения продукции.
85938. КОЛИЧЕСТВЕННЫЕ ХАРАКТЕРИСТИКИ БЕЗОТКАЗНОСТИ. ЛОГИКО-ВЕРОЯТНОСТНЫЙ МЕТОД РАСЧЕТА 334.5 KB
  Надежность является сложным свойством, и формируется такими составляющими, как безотказность, долговечность, восстанавливаемость и сохраняемость. Основным здесь является свойство безотказности - способность изделия непрерывно сохранять работоспособное состояние в течение некоторого промежутка времени. Потому наиболее важным в обеспечении надежности систем является повышение их безотказности.
85940. Расчет проекта годового плана мебельной фабрики с объемом товарной продукции 6243 тысячи рублей 478.5 KB
  В современных рыночных отношениях планирование производственной хозяйственной деятельности всех предприятий и фирм, является важной предпосылкой эффективной работы предприятия. Планирование производственной хозяйственной деятельности стало в настоящее время экономической основой свободных рыночных отношений...
85941. Поверочный расчет конвективных поверхностей нагрева котла ТП – 230 879 KB
  При поверочном расчете котла вначале определяют объемы и энтальпии воздуха и продуктов сгорания, КПД и расход топлива, а затем выполняют расчет теплообмена в топочной камере и в других поверхностях в последовательности, соответствующей их расположению по ходу продуктов сгорания.
85942. Оценка устойчивости функционирования ООО «Омега-Профи’С» г. Тирасполь в ЧС 185.26 KB
  Предприятия малого бизнеса за последние годы экономических реформ стали важнейшим сектором экономики, который оказывает значительное влияние на социально-экономическую ситуацию современной России и Приднестровья. Именно в этом секторе экономики создаются новые рабочие места.
85943. Интегральный компаратор напряжений 521СА1 195.92 KB
  На кристалле расположено 140 активных элементов из них 80 маломощных npnтранзисторов TNB; 4 маломощных npnтранзистора которые можно использовать как эмиттерные повторители; 8 буферных npnтранзисторов TNE; 8 диодов; 36 маломощных pnpтранзисторов TP; 4 буферных pnpтранзистора TPC.