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.


 

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

84001. Колективне складання текстів різного типу про осінь 207 KB
  Учитель читає вірш: Лоскоче душу промінь золотавий Убравши пишно парки і ліси Йде краєм осінь Туман ранковий стелиться над ставом І лине сум прощальної краси. звучить тиха мелодія і на дошці розміщені ілюстрації осені в природі Скажіть хто створює цю красу Так осінь.
84002. Вживання прикметників у прямому і переносному значенні 39.5 KB
  Мета: Формувати вміння розрізняти прикметники вжиті в прямому і переносному значенні; закріплювати знання про прикметники Їхню роль у тексті; розвивати інтерес до усної народної творчості; збагачувати словниковий запас учнів; виховувати любов до рідної мови.
84003. Космічна подорож. Закріплення знань про часові форми дієслова 37.5 KB
  Мета: формувати вміння учнів визначати час дієслів та змінювати дієслова за часами; спостерігати за роллю дієслів у реченні; збагачувати словниковий запас; розвивати мовлення; виховувати гордість за свою Батьківщину. Що називається дієсловом Як змінюються дієслова Як визначити час дієслова...
84004. РІД IМЕННИКIВ. ЗМІНЮВАННЯ IМЕННИКIВ ЗА ЧИСЛАМИ 96.5 KB
  Мета: - перевірити знання учнів про іменник, як частину мови, закріпити знання дітей про змінювання іменників за числами, повторити з учнями рід іменників, розвивати вміння правильно ставити рід у словах, повторити антоніми, збагачувати активний словник школярів, продовжувати роботу...
84005. Складання твору за картиною «Зима - чарівниця» 114 KB
  Мета: Ознайомити із темою уроку. Формувати вміння добирати найбільш влучні Прикметники під час складання твору. Розвивати зв’язне мовлення мислення, спостережливість. Удосконалювати чітко і повним реченням відповідати на запитання. Збагачувати словниковий запас. Виховувати любов до природи.
84006. Розвиток зв’язного мовлення. Твір «Моє місто» 133.5 KB
  Мета. Хід уроку Організація класу Актуалізація опорних знань Слово вчителя Діти послухайте вірш Моє місто Умань стародавнє. Яке місто названо у вірші З якої букви потрібно писати це слово На каліграфічній хвилинці повторимо правила написання букв У у букво сполучення із даними буквами.
84007. Навчальний переказ у формі прес-конференції 153.5 KB
  Мета: Вчити дітей передавати послідовно зміст зв’язного тексту. Розширити і збагатити знання учнів про сову, осмислити значення цієї пташки. Розвивати уяву, фантазію, спостережливість. Виховувати бережне ставлення до природи. Засобом рольової гри та нестандартним підходом...
84008. Общая характеристика эволюции управленческой мысли 19.83 KB
  Первобытно общинный рабовладельческий феодальный периоды. Индустриальный период. Период систематизации научно практических знаний. период связан с бурным развитием промышленности научные открытия и изобретения на фоне буржуазных революций.
84009. Школа научного управления и ее современные последователи 17.67 KB
  В основе учения этой школы лежат следующие принципы: использование научного анализа для определения оптимальных способов выполнения задач; отбор работников наиболее подходящих для выполнения определенных задач и их обучение; обеспечение работников необходимыми ресурсами; систематическое и правильное использование материального стимулирования для повышения производительности труда; выделение планирования в функцию управления; становление менеджмента как самостоятельной науки; формирование функций менеджмента. Следовательно школа научного...