增加导出事件绑定
This commit is contained in:
31
SpineViewer/MainForm.Designer.cs
generated
31
SpineViewer/MainForm.Designer.cs
generated
@@ -114,83 +114,88 @@
|
|||||||
//
|
//
|
||||||
toolStripMenuItem_Open.Name = "toolStripMenuItem_Open";
|
toolStripMenuItem_Open.Name = "toolStripMenuItem_Open";
|
||||||
toolStripMenuItem_Open.ShortcutKeys = Keys.Control | Keys.O;
|
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.Text = "打开(&O)...";
|
||||||
toolStripMenuItem_Open.Click += toolStripMenuItem_Open_Click;
|
toolStripMenuItem_Open.Click += toolStripMenuItem_Open_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_BatchOpen
|
// toolStripMenuItem_BatchOpen
|
||||||
//
|
//
|
||||||
toolStripMenuItem_BatchOpen.Name = "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.Text = "批量打开(&B)...";
|
||||||
toolStripMenuItem_BatchOpen.Click += toolStripMenuItem_BatchOpen_Click;
|
toolStripMenuItem_BatchOpen.Click += toolStripMenuItem_BatchOpen_Click;
|
||||||
//
|
//
|
||||||
// toolStripSeparator1
|
// toolStripSeparator1
|
||||||
//
|
//
|
||||||
toolStripSeparator1.Name = "toolStripSeparator1";
|
toolStripSeparator1.Name = "toolStripSeparator1";
|
||||||
toolStripSeparator1.Size = new Size(251, 6);
|
toolStripSeparator1.Size = new Size(267, 6);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_Export
|
// toolStripMenuItem_Export
|
||||||
//
|
//
|
||||||
toolStripMenuItem_Export.DropDownItems.AddRange(new ToolStripItem[] { toolStripMenuItem_ExportFrame, toolStripMenuItem_ExportFrameSequence, toolStripMenuItem_ExportGif, toolStripMenuItem_ExportMkv, toolStripMenuItem_ExportMp4, toolStripMenuItem_ExportMov, toolStripMenuItem_ExportWebm });
|
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.Name = "toolStripMenuItem_Export";
|
||||||
toolStripMenuItem_Export.Size = new Size(254, 34);
|
toolStripMenuItem_Export.Size = new Size(270, 34);
|
||||||
toolStripMenuItem_Export.Text = "导出(&E)";
|
toolStripMenuItem_Export.Text = "导出(&E)";
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportFrame
|
// toolStripMenuItem_ExportFrame
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportFrame.Name = "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.Text = "单帧画面...";
|
||||||
toolStripMenuItem_ExportFrame.Click += toolStripMenuItem_Export_Click;
|
toolStripMenuItem_ExportFrame.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportFrameSequence
|
// toolStripMenuItem_ExportFrameSequence
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportFrameSequence.Name = "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.Text = "帧序列...";
|
||||||
toolStripMenuItem_ExportFrameSequence.Click += toolStripMenuItem_Export_Click;
|
toolStripMenuItem_ExportFrameSequence.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportGif
|
// toolStripMenuItem_ExportGif
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportGif.Name = "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.Text = "GIF...";
|
||||||
|
toolStripMenuItem_ExportGif.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportMkv
|
// toolStripMenuItem_ExportMkv
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportMkv.Name = "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.Text = "MKV";
|
||||||
|
toolStripMenuItem_ExportMkv.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportMp4
|
// toolStripMenuItem_ExportMp4
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportMp4.Name = "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.Text = "MP4...";
|
||||||
|
toolStripMenuItem_ExportMp4.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportMov
|
// toolStripMenuItem_ExportMov
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportMov.Name = "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.Text = "MOV...";
|
||||||
|
toolStripMenuItem_ExportMov.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_ExportWebm
|
// toolStripMenuItem_ExportWebm
|
||||||
//
|
//
|
||||||
toolStripMenuItem_ExportWebm.Name = "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.Text = "WebM...";
|
||||||
|
toolStripMenuItem_ExportWebm.Click += toolStripMenuItem_Export_Click;
|
||||||
//
|
//
|
||||||
// toolStripSeparator2
|
// toolStripSeparator2
|
||||||
//
|
//
|
||||||
toolStripSeparator2.Name = "toolStripSeparator2";
|
toolStripSeparator2.Name = "toolStripSeparator2";
|
||||||
toolStripSeparator2.Size = new Size(251, 6);
|
toolStripSeparator2.Size = new Size(267, 6);
|
||||||
//
|
//
|
||||||
// toolStripMenuItem_Exit
|
// toolStripMenuItem_Exit
|
||||||
//
|
//
|
||||||
toolStripMenuItem_Exit.Name = "toolStripMenuItem_Exit";
|
toolStripMenuItem_Exit.Name = "toolStripMenuItem_Exit";
|
||||||
toolStripMenuItem_Exit.ShortcutKeys = Keys.Alt | Keys.F4;
|
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.Text = "退出(&X)";
|
||||||
toolStripMenuItem_Exit.Click += toolStripMenuItem_Exit_Click;
|
toolStripMenuItem_Exit.Click += toolStripMenuItem_Exit_Click;
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ namespace SpineViewer
|
|||||||
// 在此处将导出菜单需要的类绑定起来
|
// 在此处将导出菜单需要的类绑定起来
|
||||||
toolStripMenuItem_ExportFrame.Tag = ExportType.Frame;
|
toolStripMenuItem_ExportFrame.Tag = ExportType.Frame;
|
||||||
toolStripMenuItem_ExportFrameSequence.Tag = ExportType.FrameSequence;
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -121,70 +126,9 @@ namespace SpineViewer
|
|||||||
progressDialog.ShowDialog();
|
progressDialog.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
//IEnumerable<IVideoFrame> 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)
|
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)
|
private void toolStripMenuItem_About_Click(object sender, EventArgs e)
|
||||||
|
|||||||
Reference in New Issue
Block a user