我已阅读了几篇文章,这些文章是使用setpixel / getpixel的替代方法,但我没看到它们与我的问题有什么关系。
我有一张多色图像(根据从DB中获取的动态值)将每个像素颜色组的颜色更改为新颜色。
让我们说我希望Argb值为-989556的所有像素都改为-16& Argb值为-1331的所有像素都更改为-5383962。 我目前正在查看位图中的每个像素并检查它们的值,如果它们匹配则使用setpixel更改它们。
我相信一定有更好的方法,但我太朦胧了看不到它!
答案 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中展示了一个示例。