Разработка приложения просмотра и редактирования файлов изображения в формате jpg

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: C#
  • 67 67 страниц
  • 20 + 20 источников
  • Добавлена 15.06.2023
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
Введение 3
Глава 1 Постановка задачи и выбор метода решения 4
1.1 Постановка задачи 4
1.2 Описание метода решения 5
1.3 Разработка алгоритма решения задачи 9
1.4 Выбор системы программирования 13
Глава 2. Разработка программного приложения 19
2.1 Описание приложения 19
2.2 Реализация функций приложения 24
Заключение 29
Список использованных источников 30
Приложение 1 32
Фрагмент для ознакомления

Default; } private void копироватьToolStripMenuItem_Click(object sender, EventArgs e) { Clipboard.Clear(); //очисткабуфераобмена Clipboard.SetDataObject(imageHandler.CurrBitmap);//копированиеизображениявбуферобмена imageHandler.ClearImage(); //очисткаизображения panel1.Refresh(); //обновляемпанельpanel1.Invalidate(); //вызываем перерисовку панели }private void очиститьИзображениеToolStripMenuItem2_Click(object sender, EventArgs e){ imageHandler.RestorePrevious(); //запоминаем изображение для отмены imageHandler.ClearImage(); //очистка изображения panel1.Refresh(); //обновляем панель panel1.Invalidate(); //вызываем перерисовку панели }private void сжатьToolStripMenuItem_Click(object sender, EventArgs e) { input = imageHandler.CurrBitmap; ResizeFrm rFrm = new ResizeFrm(input); rFrm.NewWidth = imageHandler.CurrBitmap.Width; rFrm.NewHeight = imageHandler.CurrBitmap.Height; if (rFrm.ShowDialog() == DialogResult.OK) { panel1.Cursor = Cursors.WaitCursor; imageHandler.RestorePrevious(); imageHandler.Resize(rFrm.NewWidth, rFrm.NewHeight); panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); //обновляемпанель panel1.Invalidate(); //вызываемперерисовкупанели panel1.Cursor = Cursors.Default; } } private void цветовойБалансToolStripMenuItem_Click(object sender, EventArgs e) { ColorBalanceFrm clrBFrm = new ColorBalanceFrm(); clrBFrm.CRValue = 0; clrBFrm.PGValue = 0; clrBFrm.YBValue = 0; if (clrBFrm.ShowDialog() == DialogResult.OK) { panel1.Cursor = Cursors.WaitCursor; imageHandler.RestorePrevious(); imageHandler.ColorBalance(clrBFrm.CRValue, clrBFrm.PGValue, clrBFrm.YBValue); panel1.Refresh(); panel1.Invalidate(); panel1.Cursor = Cursors.Default; } } private void на90ПоЧасовойСтрелкеToolStripMenuItem_Click(object sender, EventArgs e) { imageHandler.RotateFlip(RotateFlipType.Rotate90FlipNone); panel1.AutoScroll = true; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } private void на90ПротивЧасовойСтрелкиToolStripMenuItem_Click(object sender, EventArgs e) { imageHandler.RotateFlip(RotateFlipType.Rotate270FlipNone); panel1.AutoScroll = true; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } private void на180ГрадусовToolStripMenuItem_Click(object sender, EventArgs e) { imageHandler.RotateFlip(RotateFlipType.Rotate180FlipNone); panel1.AutoScroll = true; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } //масштаб 25% private void toolStripMenuItem10_Click(object sender, EventArgs e) { zoomCoeff = 0.25; cZoom.Checked = false; toolStripMenuItem4.Checked = true; cZoom = toolStripMenuItem4; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } private void отразитьГоризонтальноToolStripMenuItem_Click(object sender, EventArgs e) { imageHandler.RotateFlip(RotateFlipType.RotateNoneFlipX); panel1.AutoScroll = true; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } private void отразитьВертикальноToolStripMenuItem_Click(object sender, EventArgs e) { imageHandler.RotateFlip(RotateFlipType.RotateNoneFlipY); panel1.AutoScroll = true; panel1.AutoScrollMinSize = new Size(Convert.ToInt32(imageHandler.CurrBitmap.Width * zoomCoeff), Convert.ToInt32(imageHandler.CurrBitmap.Height * zoomCoeff)); panel1.Refresh(); panel1.Invalidate(); } private void обрезатьToolStripMenuItem_Click(object sender, EventArgs e) { CrpForm cpFrm = new CrpForm(); cpFrm.CropXPosition = 0; cpFrm.CropYPosition = 0; cpFrm.CropWidth = imageHandler.CurrBitmap.Width; cpFrm.CropHeight = imageHandler.CurrBitmap.Height; if (cpFrm.ShowDialog() == DialogResult.OK) { panel1.Cursor = Cursors.WaitCursor; imageHandler.RestorePrevious(); imageHandler.DrawOutCropArea(cpFrm.CropXPosition, cpFrm.CropYPosition, cpFrm.CropWidth, cpFrm.CropHeight); panel1.Invalidate(); if (MessageBox.Show("Выдействительнохотитеобрезатьизображение?", "Редакторизображений", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { imageHandler.Crop(cpFrm.CropXPosition, cpFrm.CropYPosition, cpFrm.CropWidth, cpFrm.CropHeight); } else { imageHandler.RemoveCropAreaDraw(); } panel1.Refresh(); panel1.Invalidate(); panel1.Cursor = Cursors.Default; } } private void очиститьИзображениеToolStripMenuItem1_Click(object sender, EventArgs e) {//вставитьтекст InsertTextFrm itFrm = new InsertTextFrm(); itFrm.XPosition = itFrm.YPosition = 0; if (itFrm.ShowDialog() == DialogResult.OK) { imageHandler.RestorePrevious(); imageHandler.InsertText(itFrm.DisplayText, itFrm.XPosition, itFrm.YPosition, itFrm.DisplayTextFont, itFrm.DisplayTextForeColor1, itFrm.DisplayTextForeColor2); panel1.Refresh(); panel1.Invalidate(); } } private void вставитьToolStripMenuItem1_Click(object sender, EventArgs e) { InsertImageFrm iIFrm = new InsertImageFrm(); iIFrm.XPosition = iIFrm.YPosition = 0; if (iIFrm.ShowDialog() == DialogResult.OK) { imageHandler.RestorePrevious(); imageHandler.InsertImage(iIFrm.DisplayImagePath, iIFrm.XPosition, iIFrm.YPosition); panel1.Refresh(); panel1.Invalidate(); } } private void вставитьФигуруToolStripMenuItem_Click(object sender, EventArgs e){ InsertShapeFrm isFrm = new InsertShapeFrm(); isFrm.XPosition = isFrm.YPosition = 0; if (isFrm.ShowDialog() == DialogResult.OK) { imageHandler.RestorePrevious(); imageHandler.InsertShape(isFrm.ShapeType, isFrm.XPosition, isFrm.YPosition, isFrm.ShapeWidth, isFrm.ShapeHeight, isFrm.ShapeColor);panel1.Refresh(); panel1.Invalidate(); } } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class ColorBalanceFrm : Form { public ColorBalanceFrm() { InitializeComponent(); // установкаобработчикасобытия Scroll CRtrackBar.Scroll += CRtrackBar_Scroll; PGtrackBar.Scroll += PGtrackBar_Scroll; YBtrackBar.Scroll += YBtrackBar_Scroll; OKbtn.DialogResult = DialogResult.OK;Cancelbtn.DialogResult = DialogResult.Cancel; } // переменная для передачи значения баланса красного в основную программуpublic int CRValue { get { return CRtrackBar.Value; } set { CRtxtBox.Text = CRtrackBar.Value.ToString();} } // переменная для передачи значения баланса зеленого в основную программуpublic int PGValue { get { return PGtrackBar.Value; } set { PGtxtBox.Text = PGtrackBar.Value.ToString();} } // переменная для передачи значения баланса синего в основную программуpublic int YBValue { get { return YBtrackBar.Value; } set { YBtxtBox.Text = YBtrackBar.Value.ToString(); } } private void CRtrackBar_Scroll(object sender, EventArgs e) { CRtxtBox.Text = CRtrackBar.Value.ToString(); } private void PGtrackBar_Scroll(object sender, EventArgs e) { PGtxtBox.Text = PGtrackBar.Value.ToString(); } private void YBtrackBar_Scroll(object sender, EventArgs e) { YBtxtBox.Text = YBtrackBar.Value.ToString();} }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class ContrastFrm : Form { public ContrastFrm() { InitializeComponent(); // установкаобработчикасобытия Scroll trackBar1.Scroll += trackBar1_Scroll; OKbtn.DialogResult = DialogResult.OK;Cancelbtn.DialogResult = DialogResult.Cancel; } // переменная для передачи значения яркости в основную программуpublic int ContrastValue { get { return trackBar1.Value; } set { label1.Text = String.Format("Текущеезначениеконтрастности: {0}", value);} } private void ContrastFrm_Load(object sender, EventArgs e) { } private void trackBar1_Scroll(object sender, EventArgs e) { label1.Text = String.Format("Текущеезначениеконтрастности: {0}", trackBar1.Value);} }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class InsertShapeFrm : Form { public InsertShapeFrm() { InitializeComponent(); // открываемдиалогвыборацветавполномрежимеcolorDialog1.FullOpen = true; // установка начального цвета для colorDialogcolorDialog1.Color = this.BackColor; OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; } public int XPosition { get { if (string.IsNullOrEmpty(beginXtxtBox.Text)) beginXtxtBox.Text = "0"; return Convert.ToInt32(beginXtxtBox.Text); } set { beginXtxtBox.Text = value.ToString(); } } public int YPosition { get { if (string.IsNullOrEmpty(beginYtxtBox.Text)) beginYtxtBox.Text = "0"; return Convert.ToInt32(beginYtxtBox.Text); } set { beginYtxtBox.Text = value.ToString(); } } public int ShapeWidth { get { if (string.IsNullOrEmpty(WidthtxtBox.Text)) WidthtxtBox.Text = "0"; return Convert.ToInt32(WidthtxtBox.Text); } set { WidthtxtBox.Text = value.ToString(); } } public int ShapeHeight { get { if (string.IsNullOrEmpty(HeighttxtBox.Text)) HeighttxtBox.Text = "0"; return Convert.ToInt32(HeighttxtBox.Text); } set { HeighttxtBox.Text = value.ToString(); } } public int ShapeType { get { return ShapescomboBox.SelectedIndex; } set { ShapescomboBox.SelectedIndex = value; } } public Color ShapeColor { get { return pictureBox1.BackColor; } set { pictureBox1.BackColor = value; } } private void ColorTextbtn_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.Cancel)return; // установкацветашрифта pictureBox1.BackColor = colorDialog1.Color; } private void InsertShapeFrm_Load(object sender, EventArgs e) { ShapescomboBox.Items.Add("Закрашенныйэллипс");ShapescomboBox.Items.Add("Закрашенный прямоугольник"); ShapescomboBox.Items.Add("Эллипс"); ShapescomboBox.Items.Add("Прямоугольник"); } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class ResizeFrm : Form { int currWidth; int currHeight; public ResizeFrm() { InitializeComponent(); OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; } public ResizeFrm(Bitmap tmp) { InitializeComponent(); currWidth = tmp.Width; currHeight = tmp.Height; OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; //label5.Text = label5.Text + currWidth.ToString() + "x" + currHeight.ToString(); } public int NewWidth { get { if (PxlradioBtn.Checked) { if (string.IsNullOrEmpty(widthUpDown.Text)) widthUpDown.Text = "0"; return Convert.ToInt32(widthUpDown.Text); } else { if (string.IsNullOrEmpty(percentUpDown.Text)) percentUpDown.Text = "0"; return (int)Math.Round((double)Convert.ToInt32(percentUpDown.Text)* currWidth/100); } } set { widthUpDown.Text = value.ToString(); label5.Text = label5.Text + widthUpDown.Text + "x"; } } public int NewHeight { get { if (PxlradioBtn.Checked) { if (string.IsNullOrEmpty(heightUpDown.Text)) heightUpDown.Text = "0"; return Convert.ToInt32(heightUpDown.Text); } else { if (string.IsNullOrEmpty(percentUpDown.Text)) percentUpDown.Text = "0"; return (int)Math.Round((double)Convert.ToInt32(percentUpDown.Text) * currHeight/100); } } set { heightUpDown.Text = value.ToString(); label5.Text = label5.Text + heightUpDown.Text; } } private void OKbtn_Click(object sender, EventArgs e) { } private void percentUpDown_ValueChanged(object sender, EventArgs e) { label6.Text = "Новыйразмер: " + NewWidth.ToString() + "x" + NewHeight.ToString(); } private void widthUpDown_ValueChanged(object sender, EventArgs e) { label6.Text = "Новыйразмер: " + NewWidth.ToString() + "x" + NewHeight.ToString(); } private void heightUpDown_ValueChanged(object sender, EventArgs e) { label6.Text = "Новыйразмер: " + NewWidth.ToString() + "x" + NewHeight.ToString();} }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class InsertTextFrm : Form { public InsertTextFrm() { InitializeComponent(); // открываемдиалогвыборацветавполномрежимеcolorDialog1.FullOpen = true; // установка начального цвета для colorDialogcolorDialog1.Color = this.BackColor; OKbtn.DialogResult = DialogResult.OK;Cancelbtn.DialogResult = DialogResult.Cancel; // установка обработчика события выбора градиентной заливкиGradientcheckBox.CheckedChanged += GradientcheckBox_CheckedChanged; } public int XPosition { get { if (string.IsNullOrEmpty(beginXtxtBox.Text)) beginXtxtBox.Text = "0"; return Convert.ToInt32(beginXtxtBox.Text); } set { beginXtxtBox.Text = value.ToString(); } } public int YPosition { get { if (string.IsNullOrEmpty(beginYtxtBox.Text)) beginYtxtBox.Text = "0"; return Convert.ToInt32(beginYtxtBox.Text); } set { beginYtxtBox.Text = value.ToString(); } } public string DisplayText { get { return InsertTextxtBox.Text; } set { InsertTextxtBox.Text = value.ToString(); } } public Font DisplayTextFont { get { return InsertTextxtBox.Font; } set { InsertTextxtBox.Font = value; } } public Color DisplayTextForeColor1 { get { return pictureBox1.BackColor; } set { pictureBox1.BackColor = value; } } public Color DisplayTextForeColor2 { get { return pictureBox2.BackColor; } set { pictureBox2.BackColor = value; } } private void FontDialogShowbtn_Click(object sender, EventArgs e) { if (fontDialog1.ShowDialog() == DialogResult.Cancel) return; // установкашрифта InsertTextxtBox.Font = fontDialog1.Font; } private void GradientcheckBox_CheckedChanged(object sender, EventArgs e) { ColorTextbtn2.Enabled = GradientcheckBox.Checked; } private void ColorTextbtn_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.Cancel)return; // установкацветашрифта pictureBox1.BackColor = colorDialog1.Color; } private void ColorTextbtn2_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.Cancel) return; // установкацветашрифта pictureBox2.BackColor = colorDialog1.Color; } private void InsertTextFrm_Load(object sender, EventArgs e) { ColorTextbtn2.Enabled = false; } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class InsertShapeFrm : Form { public InsertShapeFrm() { InitializeComponent(); // открываемдиалогвыборацветавполномрежимеcolorDialog1.FullOpen = true; // установка начального цвета для colorDialogcolorDialog1.Color = this.BackColor; OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; } public int XPosition { get { if (string.IsNullOrEmpty(beginXtxtBox.Text)) beginXtxtBox.Text = "0"; return Convert.ToInt32(beginXtxtBox.Text); } set { beginXtxtBox.Text = value.ToString(); } } public int YPosition { get { if (string.IsNullOrEmpty(beginYtxtBox.Text)) beginYtxtBox.Text = "0"; return Convert.ToInt32(beginYtxtBox.Text); } set { beginYtxtBox.Text = value.ToString(); } } public int ShapeWidth { get { if (string.IsNullOrEmpty(WidthtxtBox.Text)) WidthtxtBox.Text = "0"; return Convert.ToInt32(WidthtxtBox.Text); } set { WidthtxtBox.Text = value.ToString(); } } public int ShapeHeight { get { if (string.IsNullOrEmpty(HeighttxtBox.Text)) HeighttxtBox.Text = "0"; return Convert.ToInt32(HeighttxtBox.Text); } set { HeighttxtBox.Text = value.ToString(); } } public int ShapeType { get { return ShapescomboBox.SelectedIndex; } set { ShapescomboBox.SelectedIndex = value; } } public Color ShapeColor { get { return pictureBox1.BackColor; } set { pictureBox1.BackColor = value; } } private void ColorTextbtn_Click(object sender, EventArgs e) { if (colorDialog1.ShowDialog() == DialogResult.Cancel)return; // установкацветашрифта pictureBox1.BackColor = colorDialog1.Color; } private void InsertShapeFrm_Load(object sender, EventArgs e) { ShapescomboBox.Items.Add("Закрашенныйэллипс");ShapescomboBox.Items.Add("Закрашенный прямоугольник"); ShapescomboBox.Items.Add("Эллипс"); ShapescomboBox.Items.Add("Прямоугольник"); } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class InsertImageFrm : Form { OpenFileDialog ofd; public InsertImageFrm() { InitializeComponent(); ofd = new OpenFileDialog(); // Open Dialog Initialization ofd.RestoreDirectory = true; ofd.FilterIndex = 1; ofd.Filter = "jpg Files (*.jpg)|*.jpg|gif Files (*.gif)|*.gif|png Files (*.png)|*.png |bmp Files (*.bmp)|*.bmp"; OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; } public int XPosition { get { if (string.IsNullOrEmpty(beginXtxtBox.Text)) beginXtxtBox.Text = "0"; return Convert.ToInt32(beginXtxtBox.Text); } set { beginXtxtBox.Text = value.ToString(); } } public int YPosition { get { if (string.IsNullOrEmpty(beginYtxtBox.Text)) beginYtxtBox.Text = "0"; return Convert.ToInt32(beginYtxtBox.Text); } set { beginYtxtBox.Text = value.ToString(); } } public string DisplayImagePath { get { return ImageNametxtBox.Text; } set { ImageNametxtBox.Text = value.ToString(); } } private void OpenImagebtn_Click(object sender, EventArgs e){ if (DialogResult.OK == ofd.ShowDialog()) { ImageNametxtBox.Text = ofd.FileName; pictureBox1.Image = pictureBox1.Image = new Bitmap(ofd.FileName); ; } } private void InsertImageFrm_Load(object sender, EventArgs e) { } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class ImageInfoFrm : Form { ImageHandler imageHandler; public ImageInfoFrm(ImageHandler imageHandler) { this.imageHandler = imageHandler; InitializeComponent(); } private void OKbtn_Click(object sender, EventArgs e) { this.Close(); } private void ImageInfoFrm_Load(object sender, EventArgs e) { FileInfo fileInfo = new FileInfo(imageHandler.ImagePath); lblInfo.Text = "Имяфайла: "+ fileInfo.Name.Replace(fileInfo.Extension, "")+"\n"; lblInfo.Text = lblInfo.Text+ "\nРасширениефайла: " + fileInfo.Extension + "\n"; string loc = fileInfo.DirectoryName; if (loc.Length > 50) loc = loc.Substring(0, 15) + "..." + loc.Substring(loc.LastIndexOf("\\")); lblInfo.Text = lblInfo.Text + "\nРасположениефайла: " + loc + "\n"; lblInfo.Text = lblInfo.Text + "\nРазмеризображения: " + imageHandler.CurrBitmap.Width + " x " + imageHandler.CurrBitmap.Height + "\n"; lblInfo.Text = lblInfo.Text + "\nРазмерфайла: " + (fileInfo.Length / 1024.0).ToString("0.0") + " KB" + "\n"; lblInfo.Text = lblInfo.Text + "\nДатасозданияфайла: " + fileInfo.CreationTime.ToLongDateString(); } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class CrpForm : Form { public CrpForm() { InitializeComponent(); OKbtn.DialogResult = DialogResult.OK; Cancelbtn.DialogResult = DialogResult.Cancel; } public int CropXPosition { get { if (string.IsNullOrEmpty(beginXtxtBox.Text)) beginXtxtBox.Text = "0"; return Convert.ToInt32(beginXtxtBox.Text); } set { beginXtxtBox.Text = value.ToString(); } } public int CropYPosition { get { if (string.IsNullOrEmpty(beginYtxtBox.Text)) beginYtxtBox.Text = "0"; return Convert.ToInt32(beginYtxtBox.Text); } set { beginYtxtBox.Text = value.ToString(); } } public int CropWidth { get { if (string.IsNullOrEmpty(WidthtxtBox.Text)) WidthtxtBox.Text = "0"; return Convert.ToInt32(WidthtxtBox.Text); } set { WidthtxtBox.Text = value.ToString(); }} public int CropHeight { get { if (string.IsNullOrEmpty(HeighttxtBox.Text)) HeighttxtBox.Text = "0"; return Convert.ToInt32(HeighttxtBox.Text); } set { HeighttxtBox.Text = value.ToString(); }} }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class ColorBalanceFrm : Form { public ColorBalanceFrm() { InitializeComponent(); // установкаобработчикасобытия Scroll CRtrackBar.Scroll += CRtrackBar_Scroll; PGtrackBar.Scroll += PGtrackBar_Scroll; YBtrackBar.Scroll += YBtrackBar_Scroll; OKbtn.DialogResult = DialogResult.OK;Cancelbtn.DialogResult = DialogResult.Cancel; } // переменная для передачи значения баланса красного в основную программуpublic int CRValue { get { return CRtrackBar.Value; } set { CRtxtBox.Text = CRtrackBar.Value.ToString();} } // переменная для передачи значения баланса зеленого в основную программуpublic int PGValue { get { return PGtrackBar.Value; } set { PGtxtBox.Text = PGtrackBar.Value.ToString();} } // переменная для передачи значения баланса синего в основную программуpublic int YBValue { get { return YBtrackBar.Value; }set { YBtxtBox.Text = YBtrackBar.Value.ToString(); } } private void CRtrackBar_Scroll(object sender, EventArgs e) { CRtxtBox.Text = CRtrackBar.Value.ToString(); } private void PGtrackBar_Scroll(object sender, EventArgs e) { PGtxtBox.Text = PGtrackBar.Value.ToString(); } private void YBtrackBar_Scroll(object sender, EventArgs e) { YBtxtBox.Text = YBtrackBar.Value.ToString(); } }}using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace ImagesEditor{ public partial class BrightnessFrm : Form { public BrightnessFrm() { InitializeComponent(); // установкаобработчикасобытия Scroll trackBar1.Scroll += trackBar1_Scroll; OKbtn.DialogResult = DialogResult.OK;Cancelbtn.DialogResult = DialogResult.Cancel; } // переменная для передачи значения яркости в основную программуpublic int BrightnessValue { get { return trackBar1.Value; } set { label1.Text = String.Format("Текущеезначениеяркости: {0}", value); } } private void OKbtn_Click(object sender, EventArgs e) { } private void trackBar1_Scroll(object sender, EventArgs e) { label1.Text = String.Format("Текущеезначениеяркости: {0}", trackBar1.Value);} }}

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. ГОСТ 19.401-78. ЕСПД. Текст программы. Требования к содержанию и оформлению. – М.: Изд-во стандартов, 1978.
2. ГОСТ 19.505-79. ЕСПД. Руководство оператора. Требования к содержанию и оформлению. – М.: Изд-во стандартов, 1977.
3. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. – М.: Изд-во стандартов. – 1990.
4. Ilhom Buriev. Есть ли смысл изучать C# в 2021 году: карьерные перспективы новичка. [Электронный ресурс]. – Режим доступа: https://proglib.io/p/est-li-smysl-izuchat-c-v-2021-godu-karernye-perspektivy-novichka-2021-07-29 (дата обращения – 30 апреля 2023 г.)
5. Белов, В. В. Алгоритмы и структуры данных : учебник / В. В. Белов, В. И. Чистякова. – Москва : КУРС: ИНФРА-М, 2020. – 240 с.
6. Введение в Windows Forms. [Электронный ресурс]. – Режим доступа: https://metanit.com/sharp/windowsforms/1.3.php (дата обращения – 30 апреля 2023 г.)
7. Введение в сериализацию объектов. [Электронный ресурс]. – Режим доступа: https://metanit.com/sharp/tutorial/6.1.php (дата обращения – 30 апреля 2023 г.)
8. Документация по C# [Электронный ресурс]. – Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/csharp/ (дата обращения – 30 апреля 2023 г.)
9. Евдокимов П.В., Дубовик Е.В. Справочник C#. Кратко, быстро, под рукой. – СПб.: Наука и Техника, 2023. – 336 с.
10. Казанский А.А. Программирование на Visual C# 2013: учеб. пособие для СПО / А.А. Казанский.- М.: Издательство Юрайт, 2019. – 191 с.
11. Как работают базы данных в IT: разбор на примерах. [Электронный ресурс] – Режим доступа: https://practicum.yandex.ru/blog/chto-takoe-bazy-dannyh/ (дата обращения – 30 апреля 2023 г.)
12. Колдаев, В. Д. Основы алгоритмизации и программирования : учебное пособие / В.Д. Колдаев ; под ред. проф. Л.Г. Гагариной. – Москва : ФОРУМ : ИНФРА-М, 2019. – 416 с.
13. Маляров, А. Н. Объектно-ориентированное программирование : учебник для технических вузов / А. Н. Маляров. – М.: Профтехобразование, 2022. – 334 c.
14. Новиков Б.А. Основы технологий баз данных: учебное пособие / Б.А. Новиков, Е.А. Горшкова, Н.Г. Графеева; под ред. Е.В. Рогова. – 2-е изд. – М.: ДМК Пресс, 2020. – 582 с.
15. Практика программирования на С# для Windows и Web в Microsoft Visual Studio. [Электронный ресурс]. – Режим доступа: http://wladm.narod.ru/C_Sharp/index.html (дата обращения – 30 апреля 2023 г.)
16. Различия между C# и другими языками программирования: яблоки, апельсины и немного C-Sharp. [Электронный ресурс]. – Режим доступа: https://habr.com/ru/companies/otus/articles/723460/ (дата обращения – 30 апреля 2023 г.)
17. Разбираемся с Сериализацией в C#. [Электронный ресурс]. – Режим доступа: https://www.nookery.ru/serialization/ (дата обращения – 30 апреля 2023 г.).
18. Список List. [Электронный ресурс]. – Режим доступа: https://metanit.com/sharp/tutorial/4.5.php (дата обращения – 30 апреля 2023 г.).
19. Тюкачев Н. А., Хлебостроев В. Г. C#. Основы программирования: Учебное пособие. – 3_е изд., стер. – СПб.: Издательство «Лань», 2018. – 272 с.
20. Язык программирования С#: история, специфика, место на рынке. [Электронный ресурс]. – Режим доступа: https://gb.ru/posts/yazyk-programmirovaniya-c-sharp-istoriya-specifika-mesto-na-rynke (дата обращения – 30 апреля 2023 г.).