В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
89286666666
89286666666
19.07.2022 14:30 •  Информатика

C# form разработайте функцию, заменяющую все точки синего цвета на точки красного цвета

Показать ответ
Ответ:
fotoschoolio
fotoschoolio
23.07.2020 01:47
Using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;

namespace WindowsFormsApplication1 {
    public partial class Form1 : Form {

        private readonly Pen mainPen_ = new Pen(Color.Blue, 4);
        private Bitmap bmp_;
        private Point currentPoint_;
        private Graphics g;
        private Point previousPoint_;

        public Form1() {
            this.InitializeComponent();
        }

        private void bOpen_Click(object sender, EventArgs e) {
            // Описываем объект класса OpenFileDialog
            var dialog = new OpenFileDialog {
                Filter = "Image files (*.BMP, *.JPG, *.GIF, *.PNG)|*.bmp;*.jpg;*.gif;*.png"
            };
            // Задаем расширения файлов
            // Вызываем диалог и проверяем выбран ли файл
            if (dialog.ShowDialog() != DialogResult.OK) {
                return;
            }
            // Загружаем изображение из выбранного файла
            var image = Image.FromFile(dialog.FileName);
            this.pictureBox1.Width = image.Width;
            this.pictureBox1.Height = image.Height;
            // Создаем и загружаем изображение в формате bmp84
            this.bmp_ = new Bitmap(image);
            // Записываем изображение в pictureBox1
            this.pictureBox1.Image = this.bmp_;
            // Подготавливаем объект Graphics для рисования
            this.g = Graphics.FromImage(this.pictureBox1.Image);
            this.g.SmoothingMode = SmoothingMode.AntiAlias;
        }

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e) {
            // Записываем в предыдущую точку текущие координаты
            this.previousPoint_ = new Point(e.X, e.Y);
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e) {
            // Проверяем нажата ли левая кнопка мыши
            if (e.Button != MouseButtons.Left) {
                return;
            }
            // Запоминаем текущее положение курсора мыши
            this.currentPoint_ = new Point(e.X, e.Y);
            // Соеденяем линией предыдущую точку с текущей

            this.g.DrawLine(this.mainPen_, this.previousPoint_, this.currentPoint_);
            // Текущее положение курсора - в previousPoint_
            this.previousPoint_ = this.currentPoint_;
            // Принудительно вызываем перерисовку
            this.pictureBox1.Invalidate();
        }

        private void bSave_Click(object sender, EventArgs e) {
            // Описываем и порождаем объект savedialog
            var savedialog = new SaveFileDialog {
                Title = "Сохранить картинку как...",
                OverwritePrompt = true,
                CheckPathExists = true,
                Filter =
                    "Bitmap File(*.bmp)|*.bmp|" +
                    "GIF File(*.gif)|*.gif|" +
                    "JPEG File(*.jpg)|*.jpg|" +
                    "PNG File(*.png)|*.png"
            };
            // Показываем диалог и проверяем задано ли имя файла
            if (savedialog.ShowDialog() != DialogResult.OK) {
                return;
            }

            var format = ImageFormat.Jpeg;
            switch (Path.GetExtension(savedialog.FileName)) {
                case "bmp":
                    format = ImageFormat.Bmp;
                    break;
                case "jpg":
                    format = ImageFormat.Jpeg;
                    break;
                case "gif":
                    format = ImageFormat.Gif;
                    break;
                case "tif":
                    format = ImageFormat.Tiff;
                    break;
                case "png":
                    format = ImageFormat.Png;
                    break;
                default:
                    break;
            }
            this.bmp_.Save(savedialog.FileName, format);
        }

        private void bChangePixels_Click(object sender, EventArgs e) {
            // Циклы для перебора всех пикселей на изображении
            for (var x = 1; x < this.bmp_.Width; x++) {
                for (var y = 1; y < this.bmp_.Height; y++) {
                    var c = this.bmp_.GetPixel(x, y);
                    if (c.B >= 200 && (c.R + c.G) <= 200) {
                        this.bmp_.SetPixel(x, y, Color.Red);
                    }
                }
                this.Refresh();
            }
        }

    }
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота