From 65bb318ccc4f2363d2dfa69de910ca6d8ab0dcee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=8B=E6=B0=B4?= <1123993881@qq.com> Date: Tue, 8 Aug 2023 08:51:17 +0800 Subject: [PATCH] fix: allowed svg rendering. --- RotationSolver.Basic/Data/IconSet.cs | 20 +++++++++++++++++++ .../RotationSolver.Basic.csproj | 1 + RotationSolver/RotationSolverPlugin.cs | 1 + 3 files changed, 22 insertions(+) diff --git a/RotationSolver.Basic/Data/IconSet.cs b/RotationSolver.Basic/Data/IconSet.cs index ef7055da5..03853dbfc 100644 --- a/RotationSolver.Basic/Data/IconSet.cs +++ b/RotationSolver.Basic/Data/IconSet.cs @@ -1,5 +1,7 @@ using ECommons.ImGuiMethods; using ImGuiScene; +using Svg; +using System.Drawing.Imaging; namespace RotationSolver.Basic.Data; @@ -74,6 +76,24 @@ public enum IconType : byte /// public static class IconSet { + /// + /// Init for svg rendering. + /// + public static void InIt() + { + ThreadLoadImageHandler.AddConversionToBitmap(SvgToPng); + } + + private static byte[] SvgToPng(byte[] data) + { + using var stream = new MemoryStream(data); + using var outStream = new MemoryStream(); + var svgDocument = SvgDocument.Open(stream); + using var bitmap = svgDocument.Draw(); + bitmap.Save(outStream, ImageFormat.Png); + return outStream.ToArray(); + } + /// /// Get Texture form texture. /// diff --git a/RotationSolver.Basic/RotationSolver.Basic.csproj b/RotationSolver.Basic/RotationSolver.Basic.csproj index bad116ae5..ccc7a0216 100644 --- a/RotationSolver.Basic/RotationSolver.Basic.csproj +++ b/RotationSolver.Basic/RotationSolver.Basic.csproj @@ -41,6 +41,7 @@ True \ + True \ diff --git a/RotationSolver/RotationSolverPlugin.cs b/RotationSolver/RotationSolverPlugin.cs index 68ceb3d80..4e651dace 100644 --- a/RotationSolver/RotationSolverPlugin.cs +++ b/RotationSolver/RotationSolverPlugin.cs @@ -36,6 +36,7 @@ public RotationSolverPlugin(DalamudPluginInterface pluginInterface) { ECommonsMain.Init(pluginInterface, this, Module.DalamudReflector, Module.ObjectFunctions); ThreadLoadImageHandler.TryGetIconTextureWrap(0, false, out _); + IconSet.InIt(); //Init! Clipper.InflatePaths(new PathsD(new PathD[] { Clipper.MakePath(new double[] {0, 0, 1, 1 }) }), 0, JoinType.Round, EndType.Joined);