1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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();
- 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");
- JObject jo = ReadJson(jsonStream);
- JArray ja = JArray.Parse(jo["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;
- }
- }
- }
|