如何最高效率读取图片的所有像素(除了用FOR循环)
我想读取一张图片的所有像素点,如果使用两个FOR循环效率比较低,有没有更好的方法internal virtual int[][] imageToIntArray(QRCodeImage image)
{
int width = image.Width;
int height = image.Height;
int[][] intImage = new int[width][];
for (int i = 0; i < width; i++)
{
intImage[i] = new int[height];
}
// System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
// sw.Start();
for (int y = 0; y < height; y++)
{
for (int x = 0; x < width; x++)
{
intImage[x][y] = image.getPixel(x, y);
}
}
// sw.Stop();
//System.Console.Write(sw.ElapsedMilliseconds.ToString());
// System.Windows.Forms.MessageBox.Show(sw.ElapsedMilliseconds.ToString());
return intImage;
} --------------------编程问答-------------------- 效率怎么低了?除非你不查找所有像素 --------------------编程问答-------------------- 要读取所有的不for和for都一样,for不影响效率 --------------------编程问答-------------------- 我是要读取所有像素点,大概一400 × 400的图片 要花2000毫秒左右,我希望能够在100毫秒内处理完毕 --------------------编程问答-------------------- 换一台计算机就成了 --------------------编程问答--------------------
Bitmap bitmap = (Bitmap)Image.FromFile("c:\\test.bmp");
System.Drawing.Imaging.BitmapData data = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
补充:.NET技术 , C#