Лабораторная работа №2 Тема: Создание приложения со сложным графическим интерфейсом, с помощью С# Windows Form Applications. Цель: Изучить стандартные компоненты для работы с изображениями и передачей данных между формами Задание: Создать простой редактор изображений, с возможностью открытия файлов изображений, масштабирования, изображения в черно-белое, сохранение документа. 1 преобразования 1. Реализация программы Программа выполняет открытие изображения, масштабирование, преобразование его в черно-белое и сохранение документа. Пример работы программы Открытие программы: Рисунок 1 – Реализация программы Открытие файла с изображением: Рисунок 2 – Открытие файла с изображением 2 Рисунок 3 – Диалоговое окно открытия файла с изображением Изображение, загруженное в программу: Рисунок 4 – Изображение загруженное в программу Открытие второй формы «Настройки»: 3 Рисунок 5 – Открытие второй формы Изменение масштаба изображения: Рисунок 6 – Изменение масштаба изображения Преобразование изображения в черно-белое: 4 Рисунок 7 – Преобразование изображения в черно-белое Сохранение изображения: Рисунок 8 – Сохранение изображения 5 Рисунок 9 – Диалоговое окно сохранения файла в формате *.bmp Код программы Форма 1 – Form1.cs using System; using System.Drawing; using System.Windows.Forms; namespace Grafika { public partial class Form1 : Form { public Form2 settings; public Form1() { InitializeComponent(); } private void ToolStripMenuItem_Click(object sender, EventArgs e) { } private void LoadToolStripMenuItem_Click(object sender, EventArgs e) { openFileDialog1.Filter = "Images File (*.jpg, *.jpeg, *.bmp, *.gif, *.png)|*.jpg; *.jpeg; *.bmp; *.gif; *.png"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage; pictureBox1.Image = Image.FromFile(openFileDialog1.FileName); } 6 } private void setToolStripMenuItem_Click(object sender, EventArgs e) { settings = new Form2(pictureBox1); settings.Show(); } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { saveFileDialog1.Filter = "Jpeg Image|*.jpg|Bitmap Image |*.bmp|Gif Image|*.gif|Png Image| *.png"; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { pictureBox1.Image.Save(saveFileDialog1.FileName); } } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { System.Environment.Exit(0); } } } Код программы Форма 2 – Form2.cs using System; using System.Drawing; using System.Windows.Forms; namespace Grafika { public partial class Form2 : Form { PictureBox mainPB; public Form2(PictureBox _mainPB) { InitializeComponent(); mainPB = _mainPB; } private void button1_Click(object sender, EventArgs e) { if (trackBar1.Value != 100) { Bitmap buf = new Bitmap(mainPB.Image, mainPB.Image.Width * trackBar1.Value / 100, mainPB.Image.Height * trackBar1.Value / 100); mainPB.Image = (Image)buf; } if (checkBox1.Checked) { Bitmap buf = new Bitmap(mainPB.Image); for (int y = 0; y < mainPB.Image.Height; y++) { for (int x = 0; x < mainPB.Image.Width; x++) { Color c = buf.GetPixel(x, y); byte rgb = (byte)(0.3 * c.R + 0.59 * c.G + 0.11 * c.B); buf.SetPixel(x, y, Color.FromArgb(c.A, rgb, rgb, rgb)); } mainPB.Image = (Image)buf; } trackBar1.Value = 100; } } private void trackBar1_Scroll(object sender, EventArgs e) 7 { labelScale.Text = trackBar1.Value.ToString() + "%"; } } } Заключение В ходе лабораторной работы, была разработана программа на языке программирования С# для открытия, масштабирования, преобразования в черно-белое и сохранения изображений, с использованием передачи данных между формами. Изучены стандартные компоненты изображениями и передачей данных между формами. 8 для работы с 9