Научная статья на тему 'Создание и сохранение изображений с использованием языка программирования C#'

Создание и сохранение изображений с использованием языка программирования C# Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
406
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОБРАБОТКА ИЗОБРАЖЕНИЙ / ГРАФИКА / C#

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Алексеев Георгий Сергеевич

В статье анализируется создание и сохранение изображений на языке программирования C#. Для большего исследования вопроса приводится листинг программного кода небольшого приложения, реализующего предлагаемую модель работы с графическими образами.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Создание и сохранение изображений с использованием языка программирования C#»

СОЗДАНИЕ И СОХРАНЕНИЕ ИЗОБРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ C#

Алексеев Г.С.

Алексеев Георгий Сергеевич - студент, специальность: информационные системы и технологии в металлургии, кафедра теплофизики и информатики в металлургии, Федеральное государственное автономное учреждение высшего образования Уральский федеральный университет им. первого Президента России Б.Н. Ельцина,

г. Екатеринбург

Аннотация: в статье анализируется создание и сохранение изображений на языке программирования C#. Для большего исследования вопроса приводится листинг программного кода небольшого приложения, реализующего предлагаемую модель работы с графическими образами.

Ключевые слова: обработка изображений, графика, C#.

Существует множество методов обработки и распознавания образов, подробно изложенных во всевозможных учебных пособиях по искусственному интеллекту, обработке изображений, нейронным сетям. В силу их большой известности (например, метод линейной коррекции, распознавание на основе теории принятия решений [2, c. 989] или retinex - компенсации неравномерного освещения) нет необходимости перечислять их и останавливаться на этом вопросе более подробно. Однако ни один из этих методов не дает достаточно удовлетворительных результатов для применения на практике в силу тех или иных обстоятельств. Задача настоящей работы состоит в том, чтобы найти новые методы создания и сохранения изображений и попытаться избавиться от ограничений, с которыми сталкиваются известные подходы к распознаванию образов. Главными целями исследования являются:

• разработка методов распознавания образов, имеющих максимальную самостоятельность агента в принятии решений;

• обучаемость агента на основе накопления опыта практического распознавания образов, с использованием меры успешности выполнения задания;

• выработка агентом новых решающих правил и обобщения своей деятельности на основе опыта и накопления знаний.

Для более детализированного исследования сохранения и создания изображений приведем листинг кода на языке программирования C#.

Файл frm_image.cs 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;

namespace WindowsFormsApplication16

{

public partial class frm_image : Form {

Bitmap elementBitmap;

int pictureBoxWidth; int pictureBoxHeight; int elementBitmapWidth; int elementBitmapHeight;

public Frm_image() {

InitializeComponent(); elementBitmapWidth = 30; elementBitmapHeight = 30;

elementBitmap = new Bitmap(elementBitmapWidth, elementBitmapHeight); pictureBoxHeight = pictureBox.ClientRectangle.Height; pictureBoxWidth = pictureBox.ClientRectangle.Width;

}

private void button1_Click(object sender, EventArgs e) {

Graphics g = Graphics.FromImage(elementBitmap); Color color = Color.Black; Pen pen = new Pen(color, 1);

g.DrawLine(pen, 0, elementBitmapHeight / 2, elementBitmapWidth, elementBitmapHeight / 2); g.Dispose(); pen.Dispose(); pictureBox.Image = null; elementBitmap.Save("element.bmp");

}

private void pictureBox_Paint(object sender, PaintEventArgs e) {

e.Graphics.DrawImage(elementBitmap, pictureBoxWidth / 2 -

elementBitmapWidth / 2, pictureBoxHeight / 2 - elementBitmapHeight / 2); }

private void buttonImage_Click(object sender, EventArgs e) {

pictureBox.Image = elementBitmap;

}

private void pictureBox_Paint(object sender, PaintEventArgs e) {

Bitmap openElementBitmap = new Bitmap("element.bmp"); e.Graphics.DrawImage(openElementBitmap, pictureBox.Width / 2 -

elementBitmapWidth / 2, pictureBox.Height / 2 - elementBitmapHeight / 2);

}

}

}

Описание основных рубежей программы, ее структуры:

pictureBox.Image = null; Ключевое слово null является литералом, представляющим пустую ссылку, которая не ссылается ни на один объект. null является значением по умолчанию переменных типа ссылок [4].

Метод e.Graphics.DrawImage(parameters) рисует заданное изображение, используя его исходный фактический размер, в месте, задаваемом парой координат.

Программа создает объект Bitmap и помещает его в центр элемента pictureBox. Создает объект Bitmap из файла и помещает его в центр элемента pictureBox.

При наступлении события button_Click создается экземпляр класса Graphics g из экземпляра класса Bitmap elementBitmap. При помощи методов класса Graphics на экземпляре класса Graphics g изображаются графические фигуры. Все созданные изменения сохраняются в экземпляр класса Bitmap elementBitmap. Экземпляр класса Bitmap elementBitmap в свою очередь сохраняется в файл при помощи метода класса Bitmap Save(String).

При каждом наступлении события pictureBox_Paint рисуется изображение экземпляра класса Bitmap elementBitmap, используя его исходный фактический размер, в месте, задаваемом парой координат. Для этого используется метод класса Graphics, также создается новый экземпляр класса Bitmap openElementBitmap из файла изображения "element.bmp". Затем рисуется изображение экземпляра класса Bitmap openelementBitmap, используя его исходный фактический размер, в месте, задаваемом парой координат. Для этого используется метод класса Graphics.

Список литературы

1. Визильтер Ю.В., Желтое С.Ю., Бондаренко А.В., Ососков M.B., Моржин А.В. Обработка и анализ изображений в задачах машинного зрения. М.: Физматкнига, 2010. 689 с.

2. Гонсалес Рафаэл С. Цифровая обработка изображений / Гонсалес Рафаэл С., Вудс Ричард Е.; Чочиа П.А. (науч. ред. пер.); Рубанова Л.И., Чочиа П.А. (пер. с англ.). 3-е изд., испр. и доп. М.: Техносфера, 2012. 1103 с.: ил., табл. (Мир цифровой обработки).

3. Захаров А.А. Методы и алгоритмы представления и генерации изображений в графических системах / Захаров А.А.; Муром. ин-т (фил.) Гос. образоват. учреждения высш. проф. Образования. Владим. гос. ун-т. Муром, 2010. 75 с.: ил.

4. Справочник по C#. [Электронный ресурс]. Режим доступа: https://msdn.microsoft.com, https://msdn.microsoft.com/library/edakx9da(v=vs.100).aspx/ (дата обращения: 27.04.2017).

i Надоели баннеры? Вы всегда можете отключить рекламу.