1
0

feat: use dotnet embedded zlib for compress/decompress

This commit is contained in:
2026-04-11 16:22:34 +08:00
parent 287df15db8
commit 4fd040379c
2 changed files with 3 additions and 15 deletions

View File

@@ -52,7 +52,7 @@ namespace BallanceTasEditor.Backend {
var totalByte = seq.GetCount() * SIZEOF_RAW_TAS_FRAME; var totalByte = seq.GetCount() * SIZEOF_RAW_TAS_FRAME;
fs.Write(BitConverter.GetBytes(totalByte), 0, SIZEOF_I32); fs.Write(BitConverter.GetBytes(totalByte), 0, SIZEOF_I32);
using (var zo = new Ionic.Zlib.ZlibStream(fs, Ionic.Zlib.CompressionMode.Compress, Ionic.Zlib.CompressionLevel.Level9, true)) { using (var zo = new System.IO.Compression.ZLibStream(fs, System.IO.Compression.CompressionLevel.SmallestSize, true)) {
foreach (var item in seq) { foreach (var item in seq) {
var rawItem = item.ToRaw(); var rawItem = item.ToRaw();
zo.Write(BitConverter.GetBytes(rawItem.TimeDelta), 0, SIZEOF_F32); zo.Write(BitConverter.GetBytes(rawItem.TimeDelta), 0, SIZEOF_F32);
@@ -101,8 +101,8 @@ namespace BallanceTasEditor.Backend {
ArgumentOutOfRangeException.ThrowIfNotEqual(remainder, 0); ArgumentOutOfRangeException.ThrowIfNotEqual(remainder, 0);
using (var mem = new MemoryStream()) { using (var mem = new MemoryStream()) {
using (var zo = new Ionic.Zlib.ZlibStream(mem, Ionic.Zlib.CompressionMode.Decompress, true)) { using (var zo = new System.IO.Compression.ZLibStream(fs, System.IO.Compression.CompressionMode.Decompress, true)) {
CopyStream(fs, zo); zo.CopyTo(mem);
zo.Close(); zo.Close();
} }
@@ -132,17 +132,6 @@ namespace BallanceTasEditor.Backend {
//zo.Close(); //zo.Close();
} }
private const int STREAM_COPY_CHUNK_SIZE = 10240;
private static void CopyStream(Stream origin, Stream target) {
var buffer = new byte[STREAM_COPY_CHUNK_SIZE];
int len;
while ((len = origin.Read(buffer, 0, STREAM_COPY_CHUNK_SIZE)) > 0) {
target.Write(buffer, 0, len);
}
//target.Flush();
}
private sealed class EnumerableMemoryStream : IExactSizeEnumerable<TasFrame> { private sealed class EnumerableMemoryStream : IExactSizeEnumerable<TasFrame> {
public EnumerableMemoryStream(MemoryStream mem, int frameCnt) { public EnumerableMemoryStream(MemoryStream mem, int frameCnt) {
m_MemoryStream = mem; m_MemoryStream = mem;

View File

@@ -16,7 +16,6 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.4.0" /> <PackageReference Include="CommunityToolkit.HighPerformance" Version="8.4.0" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" /> <PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.1" />
<PackageReference Include="DotNetZip" Version="1.9.1.8" />
<PackageReference Include="OneOf" Version="3.0.271" /> <PackageReference Include="OneOf" Version="3.0.271" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.5" /> <PackageReference Include="System.Configuration.ConfigurationManager" Version="10.0.5" />
</ItemGroup> </ItemGroup>