Вывод изображения - C# (185862)
Формулировка задачи:
Здравствуйте. Передо мной стоит следующая задача - необходимо выделить R, G, B компоненты изображения, а затем графически интерпретировать их.
Насколько я понимаю, для начала нужно создать массивы для каждой цветовой компоненты, а после вывести их в виде трех картинок, каждая из которых будет характеризовать интенсивность одного из трех цветов (красного, зеленого или синего) в каждом пикселе исходного изображения.
Собственно, RGB составляющие я выделил, но как их визуализировать? Ниже представлена часть кода, в которой я пытался выполнить эту задачу для записи хотя бы одной цветовой компоненты.
Но в итоге изображение получается пустым, поскольку при сохранении я не использовал ни один из массивов цветовых компонент. Отсюда вопрос - как использовать эти массивы? В какую часть кода их вставлять?
На С# работаю буквально пару дней, поэтому и испытываю такие трудности. Надеюсь на вашу помощь)
private void buttonEncode_Click(object sender, EventArgs e) { Bitmap img = new Bitmap(textBoxFilePath.Text); int[,] arrayR = new int[img.Width, img.Height]; int[,] arrayG = new int[img.Width, img.Height]; int[,] arrayB = new int[img.Width, img.Height]; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif"; saveFileDialog1.Title = "Save an Image File"; saveFileDialog1.ShowDialog(); if (saveFileDialog1.FileName != "") { System.IO.FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile(); for (int i = 0; i < img.Width; i++) { for (int j = 0; j < img.Height; j++) { Color pixel = img.GetPixel(i, j); if (i < 1 && j < 10) { arrayR[i, j] = pixel.R; arrayG[i, j] = pixel.G; arrayB[i, j] = pixel.B; Console.WriteLine("R[" + i + "][" + j + "] = " + arrayR[i, j]); Console.WriteLine("G[" + i + "][" + j + "] = " + arrayG[i, j]); Console.WriteLine("B[" + i + "][" + j + "] = " + arrayB[i, j]); switch (saveFileDialog1.FilterIndex) { case 1: this.buttonEncode.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Jpeg); break; case 2: this.buttonEncode.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Bmp); break; case 3: this.buttonEncode.Image.Save(fs, System.Drawing.Imaging.ImageFormat.Gif); break; } fs.Close(); } } } } }
Решение задачи: «Вывод изображения»
textual
Листинг программы
wr.SetPixel(p, c.R * kRed, c.G * kGreen, c.B * kBlue);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д