C#替代setpixel

时间:2012-06-25 15:42:41

标签: c# gdi+ getpixel

我已阅读了几篇文章,这些文章是使用setpixel / getpixel的替代方法,但我没看到它们与我的问题有什么关系。

我有一张多色图像(根据从DB中获取的动态值)将每个像素颜色组的颜色更改为新颜色。

让我们说我希望Argb值为-989556的所有像素都改为-16& Argb值为-1331的所有像素都更改为-5383962。 我目前正在查看位图中的每个像素并检查它们的值,如果它们匹配则使用setpixel更改它们。

我相信一定有更好的方法,但我太朦胧了看不到它!

3 个答案:

答案 0 :(得分:2)

看一下ImageAttributes。SetRemapTable

Another示例。

答案 1 :(得分:0)

如果要更改整个颜色,则可能不希望基于每个像素更改它们。有一个颜色转换矩阵,允许您在几行代码中更改图像中颜色的所有像素,而不必循环和操纵图像的每个像素,这是非常慢的。

请参阅以下链接:

http://msdn.microsoft.com/en-us/library/6tf7sa87(v=vs.71).aspx

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.colormatrix.aspx

答案 2 :(得分:0)

使用位图,BitBlt功能。我在here中展示了一个示例。