| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- using GeekDesk.ViewModel;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Security.Cryptography;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Xml;
- namespace GeekDesk.Util
- {
- class SvgToGeometry
- {
- public static List<IconfontInfo> GetIconfonts()
- {
- string svgPath = "/GeekDesk;component/Resource/Iconfont/iconfont.js";
- string jsonPath = "/GeekDesk;component/Resource/Iconfont/iconfont.json";
- Stream svgStream = Application.GetResourceStream(new Uri(svgPath, UriKind.Relative)).Stream;
- Stream jsonStream = Application.GetResourceStream(new Uri(jsonPath, UriKind.Relative)).Stream;
- StreamReader streamReader = new StreamReader(svgStream);
- string svgJsStr = streamReader.ReadToEnd();
- JObject jo = ReadJson(jsonStream);
- return GetIconfonts(svgJsStr, jo);
- }
- public static List<IconfontInfo> GetIconfonts(string svgJsStr, string jsonStr)
- {
- return GetIconfonts(svgJsStr, JObject.Parse(jsonStr));
- }
- public static List<IconfontInfo> GetIconfonts(string svgJsStr, JObject json)
- {
- svgJsStr = svgJsStr.Substring(svgJsStr.IndexOf("<svg>"),
- svgJsStr.Length - (svgJsStr.Length - (svgJsStr.IndexOf("</svg>") + "</svg>".Length)) - svgJsStr.IndexOf("<svg>"));
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.LoadXml(svgJsStr);
- XmlNodeList nodeList = xmlDoc.SelectNodes("/svg/symbol");
- JArray ja = JArray.Parse(json["glyphs"].ToString());
- List<IconfontInfo> listInfo = new List<IconfontInfo>();
- for (int i = 0; i < nodeList.Count; i++)
- {
- XmlNodeList pathNodes = nodeList[i].SelectNodes("path");
- string text = "";
- foreach (XmlNode pathNode in pathNodes)
- {
- text += pathNode.Attributes["d"].Value;
- }
- string name = JObject.Parse(ja[i].ToString())["name"].ToString();
- listInfo.Add(new IconfontInfo
- {
- Text = text,
- Name = name
- });
- }
- return listInfo;
- }
- public static JObject ReadJson(Stream stream)
- {
- using (StreamReader file = new StreamReader(stream))
- {
- using (JsonTextReader reader = new JsonTextReader(file))
- {
- JObject o = (JObject)JToken.ReadFrom(reader);
- return o;
- }
- }
- }
- public static string GetMd5Str(string ConvertString)
- {
- MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
- string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 4, 8);
- t2 = t2.Replace("-", "");
- t2 = t2.ToLower();
- return t2;
- }
- }
- }
|