C# 如何获取一个将图形对象转换为位图(或将其作为位图访问)的文件

C# 如何获取一个将图形对象转换为位图(或将其作为位图访问)的文件,c#,bitmap,C#,Bitmap,我知道全部 Bitmap bmp = new Bitmap(100,100) ; Graphics graphics = Graphics.FromImage(bmp) ; 但这不是我需要做的。基本上,我想做的是稍微修改一下在屏幕上画东西的方式(它是一个中间有一条线的矩形)。我需要改变矩形的背景(我可以用像素比较或其他类似的方法) 如果我能把它变成位图。没有办法(我可以告诉你如何获取/设置/修改)像素级的图形对象。鲍勃·鲍威尔写了一篇关于直接访问图像位的优秀文章 您可以使用类似以下的for循环

我知道全部

Bitmap bmp = new Bitmap(100,100) ;
Graphics graphics = Graphics.FromImage(bmp) ;
但这不是我需要做的。基本上,我想做的是稍微修改一下在屏幕上画东西的方式(它是一个中间有一条线的矩形)。我需要改变矩形的背景(我可以用像素比较或其他类似的方法)


如果我能把它变成位图。没有办法(我可以告诉你如何获取/设置/修改)像素级的图形对象。

鲍勃·鲍威尔写了一篇关于直接访问图像位的优秀文章


您可以使用类似以下的for循环来执行此操作:

for(int i = 0; i < bmp.Width; i++)
{
    for(int j = 0; j < bmp.Height; j++)
    {
        var pixel = bmp.GetPixel(i, j);
        //do stuff with pixel here :)
    }
}
for(int i=0;i

编辑:在看到蒂拉克的评论后,如果表现对你来说是个问题,那么他是对的!(谢谢,我不知道锁位!+1)一些例子可以在上找到。但是,如果这看起来很复杂,上述方法应该可以做到:)

一旦你使用了图形,只需保存位图-对图形所做的更改会对位图进行更改。

你想更改位图图像的背景色吗?很抱歉,我一定不清楚。我需要更改已绘制到图形对象的矩形的背景。这非常慢。为了更快地检索,lockBits使用P/Invoke更好