我有一个捕获 8 位的图像。我希望将 8 位值转换为 16 位。我使用了以下
short temp16 = (short)val[i] << 8 ;
Run Code Online (Sandbox Code Playgroud)
其中val是一个 8 位样本数组。
上面的说法很吵。有人可以建议一种 8 位到 16 位转换的方法吗?
纯位移不会给你纯白色。0xff << 8 == 0xff00,不是预期的 0xffff。
一个技巧是使用 val[i] << 8 + val[i] 并记住正确的数据类型(大小、符号)。这样你就会得到 0x00 -> 0x0000 和 0xff -> 0xffff。