2010-07-07 13 views
0

J'essaie d'intégrer deux systèmes qui traitent des images. Un système fournit une image en tant que sbyte [] et l'autre utilise un BitArray. Je dois prendre les données du sbyte[] et le convertir en un BitArray. Quelqu'un sait-il comment faire ça?Comment convertir un sbyte [] en BitArray? C# .Net

Merci, Paul

Répondre

1

La façon la plus simple serait de convertir le sbyte[] à un byte[] et passer ensuite dans le constructeur BitArray normal. Si vous utilisez .NET 3.5 qui est facile avec LINQ:

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

Cela suppose que vous exécutiez dans un contexte sans contrôle déjà. Sinon, vous pouvez effectuer la conversion explicitement décochée:

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

Cool, alors comment puis-je convertir sbyte [] à l'octet []. Merci. – Paul

+0

@Paul: Avez-vous lu l'ensemble de ma réponse? Il vous montre - deux fois! –

+0

O toi, duu .... merci Jon - Toi Rock! – Paul

0

BitArray a une constructor qui prend un tableau d'octets que vous pouvez essayer:

sbyte[] sbytes = ... 
BitArray ba = new BitArray(sbytes.Select(x => (byte)x).ToArray());