在C#中,可以采用直接获取像素法(GetPixel)、内存拷贝法和指针法(unsafe)来获取图像像素并进行处理。
下面以图像的灰度化为例说明具体的处理方法和速度的比较(1G内存,P4处理器测试)。
1.GetPixel方法
GetPixel(i,j)和SetPixel(i, j,Color)可以直接得到图像的一个像素的Color结构,但是处理速度比较慢,处理一副180*180的图像大约需要100.48ms。
private void pixel_Click(object sender, EventArgs e) { if(curBitmap != null) { myTimer.ClearTimer(); myTimer.Start(); Color curColor; int ret; for (int i = 0; i < curBitmap.Width; i++) { for (int j = 0; j < curBitmap.Height ; j++) { curColor = curBi