日期:2014-05-17  浏览次数:20955 次

关于bitmap的SetPixel()函数用法,出现异常,请求帮助
代码如下:
      for (int i = 0; i < mymap.Width; i++)
                    {
                        for (int j = 0; j < mymap.Height; j++)
                        {
                            Color color = Color.FromArgb(CompelColor & 0x0000ff, (CompelColor & 0x00ff00) >> 8, (CompelColor & 0xff0000) >> 16);
                            mymap.SetPixel(i, j, color);
                        }
                    }
mymap是一个bitmap,是一条直线,高度为2,宽度为20。
CompelColor 是我的目标颜色

目前已经能够改变颜色了,但是直线的最后一部分,大概有5个宽度左右,颜色逐渐变淡,越来越透明了
是什么原因呢?请帮忙指正

------解决方案--------------------
看样子是color值不一样了,你把下面这句注销掉,用一个固定的颜色试试,还会这样吗?
//  Color color = Color.FromArgb(CompelColor & 0x0000ff, (CompelColor & 0x00ff00) >> 8, (CompelColor & 0xff0000) >> 16);

Color color=Color.FromArgb(100,100,100);
------解决方案--------------------
一步一步调试
------解决方案--------------------
CompelColor的值变了吧?
前面加一句
CompelColor =Color.Blue
试试
------解决方案--------------------
先调用bitmap.save,将图片保存到硬盘上,然后打开保存的图片看看是不是正常,如果正常的话就有可能有其他的遮挡物影响了你的视觉