From f452fe8a7141e981cd80b8e1edf1c9670963ab1a Mon Sep 17 00:00:00 2001 From: ww-rm Date: Mon, 19 May 2025 10:30:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=87=E4=BB=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E9=A2=9D=E5=A4=96=E7=9A=84=E9=9A=8F=E6=9C=BA=E5=90=8E?= =?UTF-8?q?=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SpineViewer/Spine/SpineExporter/FFmpegVideoExporter.cs | 4 ++-- SpineViewer/Spine/SpineExporter/FrameExporter.cs | 4 ++-- .../Spine/SpineExporter/FrameSequenceExporter.cs | 10 ++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/SpineViewer/Spine/SpineExporter/FFmpegVideoExporter.cs b/SpineViewer/Spine/SpineExporter/FFmpegVideoExporter.cs index a908095..1d9c81d 100644 --- a/SpineViewer/Spine/SpineExporter/FFmpegVideoExporter.cs +++ b/SpineViewer/Spine/SpineExporter/FFmpegVideoExporter.cs @@ -57,7 +57,7 @@ namespace SpineViewer.Spine.SpineExporter var noteSuffix = FileNameNoteSuffix; if (!string.IsNullOrWhiteSpace(noteSuffix)) noteSuffix = $"_{noteSuffix}"; - var filename = $"ffmpeg_{timestamp}_{FPS:f0}{noteSuffix}{Suffix}"; + var filename = $"ffmpeg_{timestamp}_{Guid.NewGuid().ToString()[..6]}_{FPS:f0}{noteSuffix}{Suffix}"; // 导出单个时必定提供输出文件夹 var savePath = Path.Combine(OutputDir, filename); @@ -86,7 +86,7 @@ namespace SpineViewer.Spine.SpineExporter { if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出 - var filename = $"{spine.Name}_{timestamp}_{FPS:f0}{noteSuffix}{Suffix}"; + var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}{noteSuffix}{Suffix}"; // 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下 var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename); diff --git a/SpineViewer/Spine/SpineExporter/FrameExporter.cs b/SpineViewer/Spine/SpineExporter/FrameExporter.cs index 194be41..9e15911 100644 --- a/SpineViewer/Spine/SpineExporter/FrameExporter.cs +++ b/SpineViewer/Spine/SpineExporter/FrameExporter.cs @@ -47,7 +47,7 @@ namespace SpineViewer.Spine.SpineExporter protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null) { // 导出单个时必定提供输出文件夹 - var filename = $"frame_{timestamp}{ImageFormat.GetSuffix()}"; + var filename = $"frame_{timestamp}_{Guid.NewGuid().ToString()[..6]}{ImageFormat.GetSuffix()}"; var savePath = Path.Combine(OutputDir, filename); worker?.ReportProgress(0, $"{Properties.Resources.process} 0/1"); @@ -78,7 +78,7 @@ namespace SpineViewer.Spine.SpineExporter var spine = spinesToRender[i]; // 逐个导出时如果提供了输出文件夹, 则全部导出到输出文件夹, 否则输出到各自的文件夹 - var filename = $"{spine.Name}_{timestamp}{ImageFormat.GetSuffix()}"; + var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}{ImageFormat.GetSuffix()}"; var savePath = Path.Combine(OutputDir ?? spine.AssetsDir, filename); try diff --git a/SpineViewer/Spine/SpineExporter/FrameSequenceExporter.cs b/SpineViewer/Spine/SpineExporter/FrameSequenceExporter.cs index adfaeaa..294e6c0 100644 --- a/SpineViewer/Spine/SpineExporter/FrameSequenceExporter.cs +++ b/SpineViewer/Spine/SpineExporter/FrameSequenceExporter.cs @@ -22,14 +22,16 @@ namespace SpineViewer.Spine.SpineExporter protected override void ExportSingle(SpineObject[] spinesToRender, BackgroundWorker? worker = null) { + var uniqueSuffix = Guid.NewGuid().ToString()[..6]; + // 导出单个时必定提供输出文件夹, - var saveDir = Path.Combine(OutputDir, $"frames_{timestamp}_{FPS:f0}"); + var saveDir = Path.Combine(OutputDir, $"frames_{timestamp}_{uniqueSuffix}_{FPS:f0}"); Directory.CreateDirectory(saveDir); int frameIdx = 0; foreach (var frame in GetFrames(spinesToRender, worker)) { - var filename = $"frames_{timestamp}_{FPS:f0}_{frameIdx:d6}{Suffix}"; + var filename = $"frames_{timestamp}_{uniqueSuffix}_{FPS:f0}_{frameIdx:d6}{Suffix}"; var savePath = Path.Combine(saveDir, filename); try @@ -56,14 +58,14 @@ namespace SpineViewer.Spine.SpineExporter if (worker?.CancellationPending == true) break; // 取消的日志在 GetFrames 里输出 // 如果提供了输出文件夹, 则全部导出到输出文件夹, 否则导出到各自的文件夹下 - var subDir = $"{spine.Name}_{timestamp}_{FPS:f0}"; + var subDir = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}"; var saveDir = Path.Combine(OutputDir ?? spine.AssetsDir, subDir); Directory.CreateDirectory(saveDir); int frameIdx = 0; foreach (var frame in GetFrames(spine, worker)) { - var filename = $"{spine.Name}_{timestamp}_{FPS:f0}_{frameIdx:d6}{Suffix}"; + var filename = $"{spine.Name}_{timestamp}_{spine.ID[..6]}_{FPS:f0}_{frameIdx:d6}{Suffix}"; var savePath = Path.Combine(saveDir, filename); try