我想通過遍歷一個圖像的所有像素,然後創建一個新的位圖與原始圖像中的像素的顏色除以像素數來創建一個C#平均顏色。當我運行它時,沒有任何反應。這裏是代碼:C#模糊圖像
private void blurToolStripMenuItem_Click(object sender, EventArgs e)
{
Bitmap img = new Bitmap(pictureBox1.Image);
Bitmap blurPic = new Bitmap(img.Width, img.Height);
Int32 avgR = 0, avgG = 0, avgB = 0;
Int32 blurPixelCount = 0;
for (int y = 0; y < img.Height; y++)
{
for (int x = 0; x < img.Width; x++)
{
Color pixel = img.GetPixel(x, y);
avgR += pixel.R;
avgG += pixel.G;
avgB += pixel.B;
blurPixelCount++;
}
}
avgR = avgR/blurPixelCount;
avgG = avgG/blurPixelCount;
avgB = avgB/blurPixelCount;
for (int y = 0; y < img.Height; y++)
{
for (int x = 0; x < img.Width; x++)
{
blurPic.SetPixel(x, y, Color.FromArgb(avgR, avgG, avgB));
}
}
img = blurPic;
}
謝謝!
使用[BlurEffect](http://msdn.microsoft.com/en-us/library/system.windows.media.effects.blureffect.aspx)。不要試圖重新發明輪子。 –
我相信你的img對象只有在這個方法完成時纔會在內存中存在......你不必把它寫出來寫入一個新文件嗎? –
@HighCore'BlureEffect'只能用於'DependencyObject'並且在所有情況下都不可用。 –