diff --git a/SvgToXaml.sln b/SvgToXaml.sln index 48189b6..35fe6e5 100644 --- a/SvgToXaml.sln +++ b/SvgToXaml.sln @@ -1,7 +1,10 @@  Microsoft Visual Studio Solution File, Format Version 12.00 +# Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgToXaml", "SvgToXaml\SvgToXaml.csproj", "{F6C225E1-F217-4146-8FC5-536B93B2ED93}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SvgToXamlConverter", "SvgToXamlConverter\SvgToXamlConverter.csproj", "{06BE0887-524B-4119-814D-42AE1DCA4C91}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -12,5 +15,9 @@ Global {F6C225E1-F217-4146-8FC5-536B93B2ED93}.Debug|Any CPU.Build.0 = Debug|Any CPU {F6C225E1-F217-4146-8FC5-536B93B2ED93}.Release|Any CPU.ActiveCfg = Release|Any CPU {F6C225E1-F217-4146-8FC5-536B93B2ED93}.Release|Any CPU.Build.0 = Release|Any CPU + {06BE0887-524B-4119-814D-42AE1DCA4C91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {06BE0887-524B-4119-814D-42AE1DCA4C91}.Debug|Any CPU.Build.0 = Debug|Any CPU + {06BE0887-524B-4119-814D-42AE1DCA4C91}.Release|Any CPU.ActiveCfg = Release|Any CPU + {06BE0887-524B-4119-814D-42AE1DCA4C91}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/SvgToXaml/SvgToXaml.csproj b/SvgToXaml/SvgToXaml.csproj index c853e20..91b9a6b 100644 --- a/SvgToXaml/SvgToXaml.csproj +++ b/SvgToXaml/SvgToXaml.csproj @@ -1,18 +1,25 @@  - - WinExe - net5.0 - enable - - - - - - - - - - - - + + WinExe + net5.0 + enable + + + + + + + + + + + + + + + + + SvgConverter.cs + + diff --git a/SvgToXaml/ViewModels/FileItemViewModel.cs b/SvgToXaml/ViewModels/FileItemViewModel.cs index 7c37f3f..073678a 100644 --- a/SvgToXaml/ViewModels/FileItemViewModel.cs +++ b/SvgToXaml/ViewModels/FileItemViewModel.cs @@ -1,7 +1,6 @@ using System; using System.Windows.Input; using ReactiveUI; -using SkiaSharp; using Svg.Skia; namespace SvgToXaml.ViewModels @@ -11,7 +10,7 @@ namespace SvgToXaml.ViewModels private string _name; private string _path; private SKSvg? _svg; - private SKPicture? _picture; + private SkiaSharp.SKPicture? _picture; public string Name { @@ -31,7 +30,7 @@ namespace SvgToXaml.ViewModels private set => this.RaiseAndSetIfChanged(ref _svg, value); } - public SKPicture? Picture + public SkiaSharp.SKPicture? Picture { get => _picture; private set => this.RaiseAndSetIfChanged(ref _picture, value); diff --git a/SvgToXaml/ViewModels/MainWindowViewModel.cs b/SvgToXaml/ViewModels/MainWindowViewModel.cs index fd9480c..4f31532 100644 --- a/SvgToXaml/ViewModels/MainWindowViewModel.cs +++ b/SvgToXaml/ViewModels/MainWindowViewModel.cs @@ -10,6 +10,7 @@ using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Threading; using ReactiveUI; using Svg.Skia; +using SvgToXamlConverter; namespace SvgToXaml.ViewModels { diff --git a/SvgToXamlConverter/Program.cs b/SvgToXamlConverter/Program.cs new file mode 100644 index 0000000..b386ab2 --- /dev/null +++ b/SvgToXamlConverter/Program.cs @@ -0,0 +1,39 @@ +using System; +using System.IO; +using Svg.Skia; + +namespace SvgToXamlConverter +{ + class Program + { + static void Main(string[] args) + { + if (args.Length == 1 || args.Length == 2) + { + try + { + var inputPath = args[0]; + var svg = new SKSvg(); + var picture = svg.Load(inputPath); + var xaml = SvgConverter.ToXaml(svg.Model); + + if (args.Length == 1) + { + Console.WriteLine(xaml); + } + + if (args.Length == 2) + { + var outputPath = args[1]; + File.WriteAllText(outputPath, xaml); + } + } + catch (Exception ex) + { + Console.WriteLine($"{ex.Message}"); + Console.WriteLine($"{ex.StackTrace}"); + } + } + } + } +} diff --git a/SvgToXaml/SvgConverter.cs b/SvgToXamlConverter/SvgConverter.cs similarity index 99% rename from SvgToXaml/SvgConverter.cs rename to SvgToXamlConverter/SvgConverter.cs index ee6d069..69852c3 100644 --- a/SvgToXaml/SvgConverter.cs +++ b/SvgToXamlConverter/SvgConverter.cs @@ -4,11 +4,11 @@ using System.Linq; using System.Text; using ShimSkiaSharp; -namespace SvgToXaml +namespace SvgToXamlConverter { public static class SvgConverter { - public static char[] NewLine = { '\r', '\n' }; + public static string NewLine = "\r\n"; public static string ToString(double value) { diff --git a/SvgToXamlConverter/SvgToXamlConverter.csproj b/SvgToXamlConverter/SvgToXamlConverter.csproj new file mode 100644 index 0000000..1f571b2 --- /dev/null +++ b/SvgToXamlConverter/SvgToXamlConverter.csproj @@ -0,0 +1,12 @@ + + + Exe + net5.0 + enable + + + + + + +