From 72f898ed60d76433794a402612d15b17894165d6 Mon Sep 17 00:00:00 2001 From: ww-rm Date: Wed, 26 Mar 2025 10:30:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=BC=E5=87=BA=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SpineViewer/MainForm.Designer.cs | 31 ++++++++------- SpineViewer/MainForm.cs | 66 +++----------------------------- 2 files changed, 23 insertions(+), 74 deletions(-) diff --git a/SpineViewer/MainForm.Designer.cs b/SpineViewer/MainForm.Designer.cs index 67b3c39..cf8e3c0 100644 --- a/SpineViewer/MainForm.Designer.cs +++ b/SpineViewer/MainForm.Designer.cs @@ -114,83 +114,88 @@ // toolStripMenuItem_Open.Name = "toolStripMenuItem_Open"; toolStripMenuItem_Open.ShortcutKeys = Keys.Control | Keys.O; - toolStripMenuItem_Open.Size = new Size(254, 34); + toolStripMenuItem_Open.Size = new Size(270, 34); toolStripMenuItem_Open.Text = "打开(&O)..."; toolStripMenuItem_Open.Click += toolStripMenuItem_Open_Click; // // toolStripMenuItem_BatchOpen // toolStripMenuItem_BatchOpen.Name = "toolStripMenuItem_BatchOpen"; - toolStripMenuItem_BatchOpen.Size = new Size(254, 34); + toolStripMenuItem_BatchOpen.Size = new Size(270, 34); toolStripMenuItem_BatchOpen.Text = "批量打开(&B)..."; toolStripMenuItem_BatchOpen.Click += toolStripMenuItem_BatchOpen_Click; // // toolStripSeparator1 // toolStripSeparator1.Name = "toolStripSeparator1"; - toolStripSeparator1.Size = new Size(251, 6); + toolStripSeparator1.Size = new Size(267, 6); // // toolStripMenuItem_Export // toolStripMenuItem_Export.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_ExportFrame, toolStripMenuItem_ExportFrameSequence, toolStripMenuItem_ExportGif, toolStripMenuItem_ExportMkv, toolStripMenuItem_ExportMp4, toolStripMenuItem_ExportMov, toolStripMenuItem_ExportWebm }); toolStripMenuItem_Export.Name = "toolStripMenuItem_Export"; - toolStripMenuItem_Export.Size = new Size(254, 34); + toolStripMenuItem_Export.Size = new Size(270, 34); toolStripMenuItem_Export.Text = "导出(&E)"; // // toolStripMenuItem_ExportFrame // toolStripMenuItem_ExportFrame.Name = "toolStripMenuItem_ExportFrame"; - toolStripMenuItem_ExportFrame.Size = new Size(194, 34); + toolStripMenuItem_ExportFrame.Size = new Size(270, 34); toolStripMenuItem_ExportFrame.Text = "单帧画面..."; toolStripMenuItem_ExportFrame.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportFrameSequence // toolStripMenuItem_ExportFrameSequence.Name = "toolStripMenuItem_ExportFrameSequence"; - toolStripMenuItem_ExportFrameSequence.Size = new Size(194, 34); + toolStripMenuItem_ExportFrameSequence.Size = new Size(270, 34); toolStripMenuItem_ExportFrameSequence.Text = "帧序列..."; toolStripMenuItem_ExportFrameSequence.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportGif // toolStripMenuItem_ExportGif.Name = "toolStripMenuItem_ExportGif"; - toolStripMenuItem_ExportGif.Size = new Size(194, 34); + toolStripMenuItem_ExportGif.Size = new Size(270, 34); toolStripMenuItem_ExportGif.Text = "GIF..."; + toolStripMenuItem_ExportGif.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportMkv // toolStripMenuItem_ExportMkv.Name = "toolStripMenuItem_ExportMkv"; - toolStripMenuItem_ExportMkv.Size = new Size(194, 34); + toolStripMenuItem_ExportMkv.Size = new Size(270, 34); toolStripMenuItem_ExportMkv.Text = "MKV"; + toolStripMenuItem_ExportMkv.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportMp4 // toolStripMenuItem_ExportMp4.Name = "toolStripMenuItem_ExportMp4"; - toolStripMenuItem_ExportMp4.Size = new Size(194, 34); + toolStripMenuItem_ExportMp4.Size = new Size(270, 34); toolStripMenuItem_ExportMp4.Text = "MP4..."; + toolStripMenuItem_ExportMp4.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportMov // toolStripMenuItem_ExportMov.Name = "toolStripMenuItem_ExportMov"; - toolStripMenuItem_ExportMov.Size = new Size(194, 34); + toolStripMenuItem_ExportMov.Size = new Size(270, 34); toolStripMenuItem_ExportMov.Text = "MOV..."; + toolStripMenuItem_ExportMov.Click += toolStripMenuItem_Export_Click; // // toolStripMenuItem_ExportWebm // toolStripMenuItem_ExportWebm.Name = "toolStripMenuItem_ExportWebm"; - toolStripMenuItem_ExportWebm.Size = new Size(194, 34); + toolStripMenuItem_ExportWebm.Size = new Size(270, 34); toolStripMenuItem_ExportWebm.Text = "WebM..."; + toolStripMenuItem_ExportWebm.Click += toolStripMenuItem_Export_Click; // // toolStripSeparator2 // toolStripSeparator2.Name = "toolStripSeparator2"; - toolStripSeparator2.Size = new Size(251, 6); + toolStripSeparator2.Size = new Size(267, 6); // // toolStripMenuItem_Exit // toolStripMenuItem_Exit.Name = "toolStripMenuItem_Exit"; toolStripMenuItem_Exit.ShortcutKeys = Keys.Alt | Keys.F4; - toolStripMenuItem_Exit.Size = new Size(254, 34); + toolStripMenuItem_Exit.Size = new Size(270, 34); toolStripMenuItem_Exit.Text = "退出(&X)"; toolStripMenuItem_Exit.Click += toolStripMenuItem_Exit_Click; // diff --git a/SpineViewer/MainForm.cs b/SpineViewer/MainForm.cs index 6bb96c8..808bd85 100644 --- a/SpineViewer/MainForm.cs +++ b/SpineViewer/MainForm.cs @@ -22,6 +22,11 @@ namespace SpineViewer // 在此处将导出菜单需要的类绑定起来 toolStripMenuItem_ExportFrame.Tag = ExportType.Frame; toolStripMenuItem_ExportFrameSequence.Tag = ExportType.FrameSequence; + toolStripMenuItem_ExportGif.Tag = ExportType.GIF; + toolStripMenuItem_ExportMkv.Tag = ExportType.MKV; + toolStripMenuItem_ExportMp4.Tag = ExportType.MP4; + toolStripMenuItem_ExportMov.Tag = ExportType.MOV; + toolStripMenuItem_ExportWebm.Tag = ExportType.WebM; } /// @@ -121,70 +126,9 @@ namespace SpineViewer progressDialog.ShowDialog(); } - //IEnumerable testExport(int fps) - //{ - // var duration = 2f; - // var resolution = spinePreviewer.Resolution; - // var delta = 1f / fps; - // var frameCount = 1 + (int)(duration / delta); // 零帧开始导出 - - // var spinesReverse = spineListView.Spines.Reverse(); - - // // 重置动画时间 - // foreach (var spine in spinesReverse) - // spine.CurrentAnimation = spine.CurrentAnimation; - - // // 逐帧导出 - // var success = 0; - // for (int frameIndex = 0; frameIndex < frameCount; frameIndex++) - // { - // using var tex = new SFML.Graphics.RenderTexture((uint)resolution.Width, (uint)resolution.Height); - // tex.SetView(spinePreviewer.View); - // tex.Clear(SFML.Graphics.Color.Transparent); - - // foreach (var spine in spinesReverse) - // { - // tex.Draw(spine); - // spine.Update(delta); - // } - - // tex.Display(); - // Debug.WriteLine($"ThreadID: {Environment.CurrentManagedThreadId}"); - // var frame = tex.Texture.CopyToFrame(); - // tex.Dispose(); - // yield return frame; - - // success++; - // } - - // Program.Logger.Info("Exporting done: {}/{}", success, frameCount); - //} - private void toolStripMenuItem_ManageResource_Click(object sender, EventArgs e) { - //spinePreviewer.StopPreview(); - //lock (spineListView.Spines) - //{ - // //var fps = 24; - // ////foreach (var i in testExport(fps)) - // //// _ = i; - // ////var t = testExport(fps).ToArray(); - // ////var a = testExport(fps).GetEnumerator(); - // ////while (a.MoveNext()); - // //var videoFramesSource = new RawVideoPipeSource(testExport(fps)) { FrameRate = fps }; - // //var outputPath = @"C:\Users\ljh\Desktop\test\a.mov"; - // //var task = FFMpegArguments - // // .FromPipeInput(videoFramesSource) - // // .OutputToFile(outputPath, true - // // , options => options - // // //.WithCustomArgument("-vf \"split[s0][s1];[s0]palettegen=reserve_transparent=1[p];[s1][p]paletteuse=alpha_threshold=128\"")) - // // .WithCustomArgument("-c:v prores_ks -profile:v 4444 -pix_fmt yuva444p10le")) - // // .ProcessAsynchronously(); - // //task.Wait(); - //} - - //spinePreviewer.StartPreview(); } private void toolStripMenuItem_About_Click(object sender, EventArgs e)