1

我想将 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 以查看是否存在某种偏移,但这仅适用于黑色像素,它会在白色像素上崩溃。

4

2 回答 2

4

像素是黑色的,应该是 0

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

你用什么类型的颜色?

另请参阅此答案

于 2010-01-18T09:35:33.737 回答
0

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

于 2010-01-18T10:09:06.103 回答