diff --git a/ArcFormats/Cyberworks/ImageTINK.cs b/ArcFormats/Cyberworks/ImageTINK.cs index a46c2ab1..d5f00247 100644 --- a/ArcFormats/Cyberworks/ImageTINK.cs +++ b/ArcFormats/Cyberworks/ImageTINK.cs @@ -148,11 +148,18 @@ namespace GameRes.Formats.Cyberworks input.Read (size_buf, 0 , 4); int png_size = BigEndian.ToInt32 (size_buf, 0); - BitmapSource frame; - using (var membuf = new MemoryStream (png_size+4)) + List mem_list; + using (var membuf = new MemoryStream()) { - input.CopyTo (membuf); - var decoder = new PngBitmapDecoder (new StreamRegion (membuf, membuf.Length-png_size), BitmapCreateOptions.None, + 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())) + { + var decoder = new PngBitmapDecoder (membuf, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); frame = decoder.Frames[0]; } diff --git a/SchemeTool/Program.cs b/SchemeTool/Program.cs index 14f7a476..36b92486 100644 --- a/SchemeTool/Program.cs +++ b/SchemeTool/Program.cs @@ -18,7 +18,7 @@ namespace SchemeTool { GameRes.FormatCatalog.Instance.DeserializeScheme(stream); } -#if true +#if false using (Stream stream = File.Create(".\\GameData\\Formats.json")) { GameRes.FormatCatalog.Instance.SerializeSchemeJson(stream);