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

0 голосов
216 просмотров

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


Информатика (31 баллов) | 216 просмотров
0

А где эти точки? Что мы имеем в начале? Какой фремворк? и тд

0

И как что-то делать если даже на вопросы не отвечают?

0

точки рисунка

0

какого еще рисунка? как именно поменять? сохранить в файл или вывести на экран? рисунок это графический файл или что?

0

я отправила тебе на почту проект

0

все работает, ты просто не на том тестируешь. нужен чисто синий цвет #0000FF, сделай в паинте и увидишь

Дан 1 ответ
0 голосов
Правильный ответ

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) {<br>                        this.bmp_.SetPixel(x, y, Color.Red);
                    }
                }
                this.Refresh();
            }
        }

    }
}

(53.1k баллов)
0

спасибо большое)