我已经阅读了几篇可以替代使用 setpixel/getpixel 的文章,但我没有看到它们与我的问题有何关系。
我有一个多色图像(取决于从 DB 获取的动态值)将每个像素颜色组的颜色更改为新颜色。
假设我希望 Argb 值为 -989556 的所有像素都更改为 -16,并且 Argb 值为 -1331 的所有像素都更改为 -5383962。我目前正在查看位图中的每个像素并检查它们的值,如果它们匹配,则使用 setpixel 更改它们。
我相信一定有更好的方法,但我太昏暗了,看不到它!
使用位图、BitBlt 功能。我在这里展示一个例子。
如果您要更改整个颜色,那么您可能不想在每个像素的基础上更改它们。有一个颜色转换矩阵应该允许您在几行代码中更改图像中颜色的所有像素,而无需循环和操作图像的每个像素,这非常慢。
请参阅以下链接:
http://msdn.microsoft.com/en-us/library/6tf7sa87(v=vs.71).aspx
http://msdn.microsoft.com/en-us/library/system.drawing.imaging.colormatrix.aspx