像素值变为负数

时间:2010-01-18 09:26:11

标签: silverlight silverlight-3.0 jpeg writeablebitmap

我想将Silverlight中的可写图像保存到磁盘。

我找到了这个教程:http://kodierer.blogspot.com/2009/11/convert-encode-and-decode-silverlight.html,并且我的代码基于EncodeJpeg方法。

但是在:

pixelsForJpeg[0][x, y] = (byte)(color >> 16); 

它抛出异常:算术运算导致溢出。 仔细检查时,颜色值为-16,777,216。像素为黑色,应为0。 切换到白色像素时,值为-1。

我试图添加16,777,216以查看是否存在某种偏移,但这仅适用于黑色像素,它会在白色像素上崩溃。

2 个答案:

答案 0 :(得分:4)

  

像素是黑色的,应该有   一直是0

像素确实是黑色的。 -16777216是0xFF000000。 FF是Alpha通道。

您使用什么类型的颜色?

另见answer

答案 1 :(得分:0)

听起来像一个包裹的有符号整数值。设置了所有位的有符号整数值为负。例如,如果有符号,则0xFFFF表示设置了16位,高位表示低15位表示负值。