Сохраненные документы с флешки / lab4
.docxМинистерство образования и науки РФ
Северо-Кавказский Горно-металлургический
институт
(Государственный Технологический Университет)
Факультет: Информационных технологий
Кафедра: Автоматизированной обработки информации
Отчет по лабораторной работе №4
Выполнила:: Студентка группы ИВб 11-2
Глотова А. В.
Проверила: Кокоева Диана Шалваевна
Владикавказ 2014 г.
СОДЕРЖАНИЕ
Процесс работы программы 4
Приложение 6
Задание: Создать программу, выполняющую вырезание выделенного участка изображения.
Процесс работы программы
Программа написана на языке С#.
Для создания утилиты использованы : 1. Компонент Picturebox1 и Picturebox2 для загрузки изображения и показа результата преобразований.
2. Компоненты Button, по нажатию на которые будут осуществляться заданные действия, т. е..
3. Компоненты OpenFileDialog1 и SaveFileDialog1 для организации открытия и сохранения изображения.
4. Компонент Edit1для отображения координат выделяемой области.
При запуске программы открывается форма, содержащая набор кнопок. Нажатие на «Открыть» вызывает метод Button1Click, в котором прописаны методы компонента OpenFileDialog1 по загрузке выбранного пользователем изображения из его личных папок. В качестве результата возвращается путь и имя указанной картинки.
После загрузки изображения форма выглядит следующим образом (рис. 1):
Рис.1. Форма после загрузки изображения
Левой кнопкой мышки щелкаем по области изображения и протягиваем выделение, не отпуская её. При этом используется метод pictureBox1_MouseDown, который заносит координаты в текстовое поле и отмечает один из углов будущего прямоугольника выделения.
После того, как пользователь отпускает кнопку мышки, срабатывает метод pictureBox1_MouseUp, передающий также координаты конечной точки выделения и копирует выделенную область в Picturebox2 , а на исходном изображении закрашивает её белым цветом (рис.2).
Рис.2. Результат вырезания
Приложение
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
textBox1.Clear();
x = Convert.ToInt16(e.X);
y = Convert.ToInt16(e.Y);
textBox1.Text = textBox1.Text + x.ToString() + ";" + y.ToString()+" ";
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
x1 = Convert.ToInt16(e.X);
y1= Convert.ToInt16(e.Y);
textBox1.Text = textBox1.Text + x1.ToString() + ";" + y1.ToString();
Bitmap Mas = new Bitmap(image);
Bitmap im = new Bitmap(Mas.Width, Mas.Height);
if (x > x1) {int p=x; x=x1; x1=p;}
if (y> y1) { int p = y; y = y1; y1 = p; }
for (int i =x; i < x1; i++)
for (int j = y; j < y1; j++)
{
im.SetPixel(i, j, Mas.GetPixel(i, j));
Color fon = Mas.GetPixel(i, j);
Mas.SetPixel(i, j, Color.FromArgb(255,255,255));
}
pictureBox1.Image = Mas;
pictureBox2.Image = im;
}