So packen Sie ein mit ZLIB C# komprimiertes Modell aus
Posted: 06 May 2025, 10:11
Das Problem ist das Folgende - ich erhält ein Modell im GLBZ -Format (dies ist ein komprimiertes Modell des GLB -Formats mit ZLIB) und ich muss dieses Modell mit ZLIB in C# wieder in GLB in C# auspacken, um weiter mit ihm im Programm zu arbeiten. Nachdem ich mit ZLIB nicht unkompliziert wurde, bekomme ich einen Speicherstream, den ich nicht weiß, wie ich mich weiter in ein GLB -Modell zusammenbauen soll. Vielleicht weiß und kann mir jemand sagen, wie ich das ursprünglich komprimierte Modell zurückbekommen kann? < /P>
Vielen Dank im Voraus für jede Hilfe. Ich habe versucht, Daten mit der .GLB -Erweiterung in eine Datei zu schreiben, aber das Modell wird danach unlesbar (was im Allgemeinen offensichtlich ist). < /P>
Ergebnis: IOException: Aufblasen: Unbekannte Komprimierungsmethode
Vielen Dank im Voraus für jede Hilfe. Ich habe versucht, Daten mit der .GLB -Erweiterung in eine Datei zu schreiben, aber das Modell wird danach unlesbar (was im Allgemeinen offensichtlich ist). < /P>
Code: Select all
public static void CompressData(byte[] inData, out byte[] outData)
{
using (MemoryStream outMemoryStream = new MemoryStream())
using (ZOutputStream outZStream = new ZOutputStream(outMemoryStream))
using (Stream inMemoryStream = new MemoryStream(inData))
{
CopyStream(inMemoryStream, outZStream);
outZStream.Finish();
outData = outMemoryStream.ToArray();
}
}
public static void DecompressData(byte[] inData, out byte[] outData)
{
using (MemoryStream outMemoryStream = new MemoryStream())
using (ZOutputStream outZStream = new ZOutputStream(outMemoryStream))
using (Stream inMemoryStream = new MemoryStream(inData))
{
CopyStream(inMemoryStream, outZStream);
outZStream.Finish();
outData = outMemoryStream.ToArray();
}
}
public static void CopyStream(System.IO.Stream input, System.IO.Stream output)
{
byte[] buffer = new byte[2000];
int len;
while ((len = input.Read(buffer, 0, 2000)) > 0)
{
output.Write(buffer, 0, len);
}
output.Flush();
}