我正在尝试集成两个处理图像的系统。一个系统以 sbyte[] 的形式提供图像,而另一个系统使用 BitArray。我需要从sbyte[]获取数据并将其转换为 BitArray。有人知道怎么做吗?
谢谢,保罗
最简单的方法是将 转换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);