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.


 

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

47982. ФІТОМЕЛІОРАЦІЯ ЯК ЗАСІБ ОПТИМІЗАЦІЇ ЕКОСИСТЕМИ 2.26 MB
  Фітомеліорація екотопу та слабозмінених місцезростань. Фітомеліорація лісових ландшафтів. Фітомеліорація сильнозмінених місцезростань.
47983. Рівноприскорений прямолінійний рух. Прискорення. Рівномірний рух тіла по колу 167 KB
  Рівномірний рух тіла по колу. Прискорення Швидкість і пройдений шлях тіла під час рівноприскореного прямолінійного руху.Рівномірний рух тіла по колу. Прямолінійним рівноприскореним рухом називають рух у разі якого швидкість тіла за будьякі однакові проміжки часу змінюється на одну ту саму величину.
47984. Сонячні елементи 970 KB
  Після протилежно заряджені вільні носії заряду просторово розділяються переміщуючись в протилежних напрямках за рахунок дифузії або дрейфу в силововому полі. Щоб прорекомбінувати вони повинні пройти по зовнішньому колу де їх надлишкова потенціальна енергія яка отримана внаслідок поглинання світла перетворюється в кінетичну енергію рухомого заряду електричний струм. У приповерхневому шарі напівпровідника товщиною dn залишається нерухомий обємний заряд додатньо іонізованих донорів і цей шар буде збіднений на основні носії заряду тобто...
47985. Управління земельними ресурсами території Києва, Жуляни 1.33 MB
  Аналіз природних та містобудівних характеристик території та існуючих землеволодінь та землекористувань. Аналіз природних та містобудівних характеристик. Аналіз функціонального призначення та правового режиму земельних ділянок на території, що досліджується. Обґрунтування перспективного використання. Визначення переліку обмежень, які діють на території. Встановлення розмірів зон, на які розповсюджуються визначені обмеження...
47986. Сутність і функції грошей 460.5 KB
  Сутність і функції грошей. Раціоналістична та еволюційна концепції походження грошей. Розвиток форм грошей. Сутність грошей.
47987. Історія економіки та економічної думки 1.07 MB
  Відповідно до першого підходу виділяють пять суспільнополітичних формацій залежно від пануючої форми власності на основні засоби виробництва яка визначає характер засобів виробництва і суспільного ладу. Немає приватної власності на землю як основний засіб виробництва а отже й експлуатації. Основним обєктом приватної власності стають засоби виробництва у промисловості. Засоби виробництва переходять у колективну суспільну власність а отже зникає експлуатація.
47988. Історія України. Короткий конспект 273 KB
  В четвертому столітті до н е племена опанували технологію виробів з міді, що дало подальший прорив в землеробстві. Прикладом однієї з найбільш важливих складових майбутніх словян була трипільська культура
47990. Хвороби травної системи та судин 492 KB
  В головці підшлункової залози загальний жовчний протік зливається з панкреатичним вірсунговим протоком утворює невелику ампулу і відкривається на слизовій ДПК отвором який має діаметр 3 мм. Причиною холециститу може бути рефлюкс в жовчні шляхи ферментів підшлункової залози. Однак больовий синдром часто може бути відсутній коли обтурація виникла на ґрунті стриктури холедоха чи раку головки підшлункової залози; жовтяниця шкіри склер і видимих слизових. При обтурації конкрементами жовтяниця виникає на другий день після приступу печінкової...