我正在尝试集成两个处理图像的系统。一个系统提供图像作为sbyte [],另一个系统使用BitArray。我需要从sbyte[]获取数据并将其转换为BitArray。有谁知道怎么做?
谢谢,保罗
答案 0 :(得分:1)
最简单的方法是将sbyte[]
转换为byte[]
,然后将其传递给普通的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);
答案 1 :(得分:0)
BitArray有一个constructor,它接受一个你可能尝试的字节数组:
sbyte[] sbytes = ...
BitArray ba = new BitArray(sbytes.Select(x => (byte)x).ToArray());