c#如何获取黑白图像的每个像素值的个数并放到数组里

c#如何获取黑白图像的每个像素值的个数并放到数组里,第1张

private static void PrintRGB()

        {

            Image img = null;

            try

            {

                img = SystemDrawingImageFromFile("//photopng");

            }

            catch (Exception e)

            {

                ConsoleWriteLine(eMessage);

            }

            Bitmap map=new Bitmap (img,imgWidth,imgHeight);

            for (int x = 0; x < imgWidth; x++)

            {

                for (int y = 0; y < imgHeight; y++)

                {

                    Color color = mapGetPixel(x, y);

                    ConsoleWriteLine("{0}\t{1}\t{2}\t{3}",colorName,colorR,colorG,colorB);

                }

            }

        }

可以利用原生态的API方法来实现,通过GetDC获取屏幕DC,然后通过GetPixel获取点的颜色。代码如下:

/// <summary>

/// 获取指定窗口的设备场景

/// </summary>

/// <param name="hwnd">将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC</param>

/// <returns>指定窗口的设备场景句柄,出错则为0</returns>

[DllImport("user32dll")]

public static extern IntPtr GetDC(IntPtr hwnd);

/// <summary>

/// 释放由调用GetDC函数获取的指定设备场景

/// </summary>

/// <param name="hwnd">要释放的设备场景相关的窗口句柄</param>

/// <param name="hdc">要释放的设备场景句柄</param>

/// <returns>执行成功为1,否则为0</returns>

[DllImport("user32dll")]

public static extern Int32 ReleaseDC(IntPtr hwnd, IntPtr hdc);

/// <summary>

/// 在指定的设备场景中取得一个像素的RGB值

/// </summary>

/// <param name="hdc">一个设备场景的句柄</param>

/// <param name="nXPos">逻辑坐标中要检查的横坐标</param>

/// <param name="nYPos">逻辑坐标中要检查的纵坐标</param>

/// <returns>指定点的颜色</returns>

[DllImport("gdi32dll")]

public static extern uint GetPixel(IntPtr hdc, int nXPos, int nYPos);

使用:

public Color GetColor(int x, int y)

{

   IntPtr hdc = GetDC(IntPtrZero); uint pixel = GetPixel(hdc, x, y);

   ReleaseDC(IntPtrZero, hdc);

   Color color = ColorFromArgb((int)(pixel & 0x000000FF), (int)(pixel & 0x0000FF00) >> 8, (int)(pixel & 0x00FF0000) >> 16);

   return color;

}

以上就是关于c#如何获取黑白图像的每个像素值的个数并放到数组里全部的内容,包括:c#如何获取黑白图像的每个像素值的个数并放到数组里、C#获取屏幕指定像素颜色值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9410577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存