diff --git a/SpineViewer/ExportHelper/ExportHelper.cs b/SpineViewer/ExportHelper/ExportHelper.cs new file mode 100644 index 0000000..10beedc --- /dev/null +++ b/SpineViewer/ExportHelper/ExportHelper.cs @@ -0,0 +1,42 @@ +using FFMpegCore.Pipes; +using System; +using System.Collections.Generic; +using System.Drawing.Imaging; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SpineViewer.ExportHelper +{ + /// + /// 为帧导出创建的辅助类 + /// + public static class ExportHelper + { + /// + /// 从纹理对象获取 Winforms Bitmap 对象 + /// + public static Bitmap CopyToBitmap(this SFML.Graphics.Texture tex) + { + using var img = tex.CopyToImage(); + img.SaveToMemory(out var imgBuffer, "bmp"); + using var stream = new MemoryStream(imgBuffer); + return new Bitmap(stream); + } + + /// + /// 从纹理获取适合 FFMpegCore 的帧对象 + /// + public static SFMLImageVideoFrame CopyToFrame(this SFML.Graphics.Texture tex) => new(tex.CopyToImage()); + + /// + /// 根据文件格式获取合适的文件后缀 + /// + public static string GetSuffix(this ImageFormat imageFormat) + { + if (imageFormat == ImageFormat.Icon) return ".ico"; + else if (imageFormat == ImageFormat.Exif) return ".jpg"; + else return $".{imageFormat.ToString().ToLower()}"; + } + } +} diff --git a/SpineViewer/ExportHelper.cs b/SpineViewer/ExportHelper/SFMLImageVideoFrame.cs similarity index 61% rename from SpineViewer/ExportHelper.cs rename to SpineViewer/ExportHelper/SFMLImageVideoFrame.cs index ea517b9..d71c3c8 100644 --- a/SpineViewer/ExportHelper.cs +++ b/SpineViewer/ExportHelper/SFMLImageVideoFrame.cs @@ -1,13 +1,11 @@ -using FFMpegCore.Pipes; -using System; +using System; using System.Collections.Generic; -using System.Drawing.Imaging; using System.Linq; using System.Text; using System.Threading.Tasks; -using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; +using FFMpegCore.Pipes; -namespace SpineViewer +namespace SpineViewer.ExportHelper { /// /// SFML.Graphics.Image 帧对象包装类 @@ -38,27 +36,4 @@ namespace SpineViewer /// True if saving was successful public bool SaveToMemory(out byte[] output, string format) => image.SaveToMemory(out output, format); } - - /// - /// 为帧导出创建的辅助类 - /// - public static class ExportHelper - { - public static Bitmap CopyToBitmap(this SFML.Graphics.Texture tex) - { - using var img = tex.CopyToImage(); - img.SaveToMemory(out var imgBuffer, "bmp"); - using var stream = new MemoryStream(imgBuffer); - return new Bitmap(stream); - } - - public static SFMLImageVideoFrame CopyToFrame(this SFML.Graphics.Texture tex) => new(tex.CopyToImage()); - - public static string GetSuffix(this ImageFormat imageFormat) - { - if (imageFormat == ImageFormat.Icon) return ".ico"; - else if (imageFormat == ImageFormat.Exif) return ".jpg"; - else return $".{imageFormat.ToString().ToLower()}"; - } - } }