14754

УВЕЛИЧЕНИЕ И УМЕНЬШЕНИЕ ГРАФИЧЕСКИХ ИЗОБРАЖЕНИЙ

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная лабота №2 увеличение и уменьшение графических изображений Цель работы: Изучить методы увеличения и уменьшения цифровых изображений и применить полученные знания на практике. Задание: написать программу способную производить увеличение исходного и...

Русский

2013-06-09

469.1 KB

5 чел.

Лабораторная лабота №2

"увеличение и уменьшение графических изображений"

Цель работы: Изучить методы увеличения и уменьшения цифровых изображений и применить полученные знания на практике.

Задание: написать программу способную производить увеличение исходного изображения в целое число раз методом дублирования. Полученные изображения затем восстановить до исходного размера и сравнить результаты с исходным изображением.

Код программы: 

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 lab2

{

   public partial class Form1 : Form

   {

       public string path;

       public int scale = 0;

       public byte r;

       public byte g;

       public byte b;

       public Bitmap bmp;

       public Bitmap out_bmp;

       public Form1()

       {

           InitializeComponent();

       }

       private void openFileDialogToolStripMenuItem_Click(object sender, EventArgs e)

       {

           OpenFileDialog dialog = new OpenFileDialog();

           dialog.Filter = "bmp | *.bmp";

           dialog.ShowDialog();

           

           bmp = (Bitmap)Image.FromFile(dialog.FileName);

           pictureBox1.Image = bmp;

       }

       private void textBox1_TextChanged(object sender, EventArgs e)

       {

           scale = Convert.ToInt32(textBox1.Text);

           scale = int.Parse(textBox1.Text);

       }

       private void button1_Click(object sender, EventArgs e)

       {

           if (scale != 0)

           {

               ScalePic1(scale, bmp);

           }

       }

       private void ScalePic1(int scale, Bitmap bmp)

       {

           int[, ,] new_color_matrix =

               new int[3, scale * bmp.Height, scale * bmp.Width];

           int[, ,] color_matrix = new int[3, bmp.Height, bmp.Width];

           Color tek_color;

           for (int i = 0; i < bmp.Height; i++)

               for (int j = 0; j < bmp.Width; j++)

               {

                   tek_color = bmp.GetPixel(j, i);

                   color_matrix[0, i, j] = tek_color.R;

                   color_matrix[1, i, j] = tek_color.G;

                   color_matrix[2, i, j] = tek_color.B;

               }

           out_bmp = new Bitmap(scale * bmp.Width, scale * bmp.Height);

           for (int x = 0; x < bmp.Width; x++)

               for (int y = 0; y < bmp.Height; y++)

               {

                   for(int i = 0; i < scale; i++)

                       for(int j = 0; j < scale; j++)

                           out_bmp.SetPixel(x * scale + i, y * scale + j, bmp.GetPixel(x, y));

               }

           pictureBox2.Image = out_bmp;

       }

       private void button2_Click(object sender, EventArgs e)

       {

           pictureBox3.Image = out_bmp;

       }

   }

}

Работа программы:

Вывод: я научился работе с масштабированием изображения.


 

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

55915. Державне управління та адміністративне право 33 KB
  Характеристика методу адміністративного права. Проблеми реформування адміністративного права. Адміністративне право є самостійною галуззю права яка характеризується надмірною мобільністю комплексним характером тернистим шляхом свого становлення.