我使用AForge.net进行频道过滤,我有3个按钮,红色,蓝色和绿色。 当我点击按钮红色时,它将应用红色通道的过滤器。但是,当我继续单击蓝色按钮时,它将重叠红色并且图像变暗。删除图像上的过滤器
有谁知道当蓝色点击时我该如何“处置”红色通道,反之亦然,因此滤镜不会相互重叠?以下是我的代码片段。
private void redchannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(0, 255);
filter.Green = new IntRange(255, 255);
filter.Blue = new IntRange(255, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
private void bluechannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(255, 255);
filter.Green = new IntRange(255, 255);
filter.Blue = new IntRange(0, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
private void greenchannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(255, 255);
filter.Green = new IntRange(0, 255);
filter.Blue = new IntRange(255, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
代码因式分解是一件好事! – 2010-12-14 07:47:41
哈哈是赞同! – LouisL 2010-12-14 08:22:11