0

我正在尝试集成两个处理图像的系统。一个系统以 sbyte[] 的形式提供图像,而另一个系统使用 BitArray。我需要从sbyte[]获取数据并将其转换为 BitArray。有人知道怎么做吗?

谢谢,保罗

4

2 回答 2

1

最简单的方法是将 转换sbyte[]为 abyte[]然后将其传递给普通BitArray构造函数。如果您使用的是 .NET 3.5,那么使用 LINQ 很容易:

byte[] bytes = sbytes.Select(s => (byte) s).ToArray();
BitArray bitArray = new BitArray(bytes);

这是假设您已经在未经检查的上下文中执行。否则,您可能希望显式取消选中转换:

byte[] bytes = sbytes.Select(s => unchecked((byte) s)).ToArray();
BitArray bitArray = new BitArray(bytes);
于 2010-07-07T16:09:38.350 回答
0

BitArray有一个构造函数,它接受一个字节数组,您可以尝试:

sbyte[] sbytes = ...
BitArray ba = new BitArray(sbytes.Select(x => (byte)x).ToArray());
于 2010-07-07T16:09:50.247 回答