Удалить один из цветов (пикселей) с картинки - C#
Формулировка задачи:
теперь возник другой вопрос.....как мне удалить один из цветов или один из пикселей с картинки, которая содержится в picturebox2......смотрел пример на msdn, там есть что-то подобное, но только он удаляет с формы(то есть картинка загружена на форму), а мне надо из picturebox2(в нем я содержу картинку)
вот пример кода из msdn:
то есть мне надо, чтобы я кликнул по кнопочке, произошла обработка изображения и срзу же вывелся результат в picturebox...и как это сделать?
// The .NET Compact Framework supports transparency,
// but with only one transparency color.
// The SetColorKey method must have the same color
// specified for the low color and high color range.
// Note that you must uncomment lines of code
// as indicated for the desired transparency effect.
protected override void OnPaint(PaintEventArgs e)
{
// Create a red and black bitmap to demonstrate transparency.
Bitmap bmp = new Bitmap(75,75);
Graphics g = Graphics.FromImage(bmp);
g.FillEllipse(new SolidBrush(Color.Red), 0, 0, bmp.Width, bmp.Width);
g.DrawLine(new Pen(Color.Black), 0, 0, bmp.Width, bmp.Width);
g.DrawLine(new Pen(Color.Black), bmp.Width, 0, 0, bmp.Width);
g.Dispose();
ImageAttributes attr = new ImageAttributes();
// Set the transparency color key based on the upper-left pixel
// of the image.
// Uncomment the following line to make all black pixels transparent:
// attr.SetColorKey(bmp.GetPixel(0, 0), bmp.GetPixel(0, 0));
// Set the transparency color key based on a specified value.
// Uncomment the following line to make all red pixels transparent:
// attr.SetColorKey(Color.Red, Color.Red);
// Draw the image using the image attributes.
Rectangle dstRect = new Rectangle(0, 0, bmp.Width, bmp.Height);
e.Graphics.DrawImage(bmp, dstRect, 0, 0, bmp.Width, bmp.Height,
GraphicsUnit.Pixel, attr);
}Решение задачи: «Удалить один из цветов (пикселей) с картинки»
textual
Листинг программы
using System.Drawing.Imaging;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.TopMost = true;
this.pictureBox2.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox2_Paint);
this.button1.Click += new System.EventHandler(this.button1_Click);
}
ImageAttributes attr = new ImageAttributes();
Bitmap bmp = new Bitmap(75, 75);
private void pictureBox2_Paint(object sender, PaintEventArgs e)
{
Graphics g = Graphics.FromImage(bmp);
g.FillEllipse(new SolidBrush(Color.Red), 0, 0, bmp.Width, bmp.Width);
g.DrawLine(new Pen(Color.Black), 0, 0, bmp.Width, bmp.Width);
g.DrawLine(new Pen(Color.Aqua), bmp.Width, 0, 0, bmp.Width);
g.Dispose();
// Draw the image using the image attributes.
Rectangle dstRect = new Rectangle(0, 0, bmp.Width, bmp.Height);
e.Graphics.DrawImage(bmp, dstRect, 0, 0, bmp.Width, bmp.Height,
GraphicsUnit.Pixel, attr);
}
private void button1_Click(object sender, EventArgs e)
{
// Set the transparency color key based on the upper-left pixel
// of the image.
// Uncomment the following line to make all black pixels transparent:
attr.SetColorKey(bmp.GetPixel(0, 0), bmp.GetPixel(0, 0));
// Set the transparency color key based on a specified value.
// Uncomment the following line to make all red pixels transparent:
attr.SetColorKey(Color.Red, Color.Red);
Hide();
Show();
}
}