优化Bitmap获取过程

This commit is contained in:
ww-rm
2025-03-25 23:34:35 +08:00
parent c2cf25bb2b
commit 2d44be31f7
3 changed files with 3 additions and 5 deletions

View File

@@ -500,10 +500,8 @@ namespace SpineViewer.Controls
foreach (int i in listView.SelectedIndices) foreach (int i in listView.SelectedIndices)
{ {
var spine = spines[i]; var spine = spines[i];
var image = spine.Preview;
var path = Path.Combine(Program.TempDir, $"{spine.ID}.png"); var path = Path.Combine(Program.TempDir, $"{spine.ID}.png");
using (var clone = new Bitmap(image)) spine.Preview.Save(path);
clone.Save(path);
fileDropList.Add(path); fileDropList.Add(path);
} }
} }

View File

@@ -72,7 +72,7 @@ namespace SpineViewer.Exporter
{ {
image.SaveToMemory(out var imgBuffer, "bmp"); image.SaveToMemory(out var imgBuffer, "bmp");
using var stream = new MemoryStream(imgBuffer); using var stream = new MemoryStream(imgBuffer);
return new(new Bitmap(stream)); return new(new Bitmap(stream)); // 必须重复构造一个副本才能摆脱对流的依赖, 否则之后使用会报错
} }
} }

View File

@@ -380,7 +380,7 @@ namespace SpineViewer.Spine
using var img = tex.Texture.CopyToImage(); using var img = tex.Texture.CopyToImage();
img.SaveToMemory(out var imgBuffer, "bmp"); img.SaveToMemory(out var imgBuffer, "bmp");
using var stream = new MemoryStream(imgBuffer); using var stream = new MemoryStream(imgBuffer);
preview = new Bitmap(stream); preview = new Bitmap(new Bitmap(stream)); // 必须重复构造一个副本才能摆脱对流的依赖, 否则之后使用会报错
} }
return preview; return preview;
} }