解决方案 »

  1.   

    http://www.codeproject.com/Questions/677506/Csharp-find-the-majority-color-of-an-image
      

  2.   

    直接点GetPixel操作很慢,你可以用
    private void LockUnlockBitsExample(PaintEventArgs e)  
    {  
    Bitmap bmp = new Bitmap("c:\\fakePhoto.jpg");  
    Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);  
    System.Drawing.Imaging.BitmapData bmpbmpData =  
    bmp.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite,  
    bmp.PixelFormat);  
    IntPtr ptr = bmpData.Scan0;  
    int bytes = bmp.Width * bmp.Height * 3;  
    byte[] rgbValues = new byte[bytes];  
    for (int counter = 0; counter < rgbValues.Length; counter += 3)  
    {  
    Marshal.WriteByte(ptr, counter, 255);  
    }  
    bmp.UnlockBits(bmpData);  
    e.Graphics.DrawImage(bmp, 0, 0);  

    这个办法来快速运算,跟GetPixel不是一个数量级的。