Avoid unnecessary memory copying.

This commit is contained in:
Crsky
2025-09-28 00:41:39 +08:00
parent 55dd3764eb
commit f1c31aa347
2 changed files with 4 additions and 11 deletions

View File

@@ -148,18 +148,11 @@ namespace GameRes.Formats.Cyberworks
input.Read (size_buf, 0 , 4);
int png_size = BigEndian.ToInt32 (size_buf, 0);
List<byte> mem_list;
using (var membuf = new MemoryStream())
{
input.CopyTo(membuf);
mem_list = membuf.ToArray().ToList();
mem_list.RemoveRange(0, mem_list.Count - png_size);
}
BitmapSource frame;
using (var membuf = new MemoryStream(mem_list.ToArray()))
using (var membuf = new MemoryStream (png_size+4))
{
var decoder = new PngBitmapDecoder (membuf, BitmapCreateOptions.None,
input.CopyTo (membuf);
var decoder = new PngBitmapDecoder (new StreamRegion (membuf, membuf.Length-png_size), BitmapCreateOptions.None,
BitmapCacheOption.OnLoad);
frame = decoder.Frames[0];
}

View File

@@ -18,7 +18,7 @@ namespace SchemeTool
{
GameRes.FormatCatalog.Instance.DeserializeScheme(stream);
}
#if false
#if true
using (Stream stream = File.Create(".\\GameData\\Formats.json"))
{
GameRes.FormatCatalog.Instance.SerializeSchemeJson(stream);