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.


 

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

26470. Фило-онтогенез кожного покрова 20 KB
  Филоонтогенез кожного покрова Филогенез: ланцетник – однослойный цилиндрический эпителий рыбы – появляются производные кожного покрова чешуя амфибии – двуслойный эпителий 2ой слой соединительнотканный в связи с выходом на сушу рептилии – 34слойный эпидермис в соединительной ткани коллагеновые и эластические волокна роговые образования птицы млекопитающие – 5 слоёв эпителия 2слоя в дерме подкожный; роговые образования железы у птиц – перья копчиковая железа онтогенез: У эмбриона кожа состоит из эпителия эктодермального...
26471. Фило-онтогенез скелета 25 KB
  Внутренний – развивался в филогенезе как каркас – опорная конструкция на которой закрепляются мягкие ткани. в промежуточном вве костной ткани кроме коллагеновых волокон и клеток откладываются мин. Пресмыкающиеся и тд – скелет из пластинчатой костной ткани коллагеновые волокна расположены упорядоченно . ткани перепончатого скелета коллагеновые волокна расп.
26472. Анатомическая терминология. Плоскости и направления, принятые в анатомии 28.5 KB
  латеральное направление – наружу медиальное направление – вовнутрь Сегментальная поперечная – вертикальная проходящая поперёк тела и делящая его на переднюю и заднюю половины. краниальное направление – к голове cranium череп каудальное направление – к хвосту cauda – хвост Фронтальная горизонтальная делит тело на верхнюю и нижнюю половины. дорсальное направление – вверх dorsum спина вентральное направление – вниз ventor – живот На голове: дорсальное направление...
26473. Биоморфологические закономерности строения и развития организмов 27 KB
  Биоморфологические закономерности строения и развития организмов Организм – целостная живая система для которого прежде всего характерны целостность и дискретность. Общие принципы строения тела животного: биполярность билатеральность сегментарность закон трубкообразного строения большинство непарных органов расположены вдоль главной оси тела Основные законы биологического развития: Закон исторического филогенетического развития Шмальгаузен: в процессе развития постоянно происходит дифференцировка разделение функций клеток и тканей...
26474. Железы кожного покрова 45 KB
  На коже вымени: между бёдрами – молочное зеркало planum lactiferum или надвыменная область regio supramammaria Под кожей поверхностная фасция вымени беловатая пластинка из плотн. ткани соединительнотканная собственная оболочка долей вымени соединённая прослойками ткани внутри долей вымени – стромой stroma gl. mammaria между правой и левой половинами – подвешивающая связка вымени lig. suspensorium mammarium на месте связки снизу вымени – серединный жёлоб – sulcus intermammarius.
26475. Классификация костей 23.5 KB
  Классификация костей Оs longum длинные дугообразные рёбра трубчатые плечевая бедренная общий план строения: биэпифизарные дистальный эпифиз проксимальный эпифиз между эпифизами – тело кости – диафиз. Зона роста кости в длину – проксимальный и дистальный метафиз – между эпифизом и диафизом. Os longum короткие равны по длине высоте ширине состоят из компактного и губчатого вещества кости запястья и заплюсны основная функция – амортизация Os planum плоские или пластинчатые Имеют обширные...
26476. Кость как орган и её остеогенез 33.5 KB
  соли в кости меняется: Молодость: 1:1 Зрелость: 1:2 Старость: 1:7 кости твёрдые хрупкие С поверхности кость покрыта надкостницей periosteum: Наружный фиброзный слой защитная функция из плотной соединительной ткани содержит много коллагеновых волокон. продольно по отношению к главной оси кости. Костные перегородки остеоны расположены плотно что придаёт кости прочность сравнимую с прочностью гранита. Особо толстый слй компакты там где велики нагрузки кости на излом.
26477. Морфофункциональная характеристика волоса 35.5 KB
  Морфофункциональная характеристика волоса Волосы pili производные эпидермиса тонкие эластичные ороговевающие нити из ороговевшего или ороговевающего эпителия. волосы покрывают почти всё тело Фции: защита терморегуляторная орган осязания Волос состоит из: волосяная нить: стержень – scapus pili видимая часть корень – radix pili находится в толще кожного покрова корень переходит в луковицу волоса. волосяная сумка чехол в сумку открываются протоки сальных желёз Утолщение корня...
26478. Морфофункциональная характеристика кожного покрова 36.5 KB
  3 составляющих: кожа cutis слизистая оболочка tunica mycosa выстилает изнутри органы пищеварения дыхания размножения мочевыделения производные кожного покрова: железы потовые сальные молочные волосы перья чешуя мякиши роговые образования рога копыта когти СUTIS: epidermis располагается с поверхности представлен многослойным плоским ороговевающим эпителием dermis собственно кожа – дерма – соединительная ткань subcutis подкожный слой – соединительная ткань epidermis 2060мкм эктодермальное происхождение...