Uploaded by Борис Перевертун

лабораторная работа №2 Инженерная графика

advertisement
Лабораторная работа №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
Download