This commit is contained in:
kwai
2023-08-25 19:06:39 +08:00
parent b08e13b93e
commit d4c347b19e
2 changed files with 59 additions and 0 deletions

View File

@@ -192,5 +192,46 @@ namespace AIStudio.Wpf.DiagramDesigner
}
}
public static string ToBase64String(this BitmapImage bitmap)
{
byte[] bytearray = null;
Stream smarket = bitmap.StreamSource;
if (smarket != null && smarket.Length > 0)
{
//设置当前位置
smarket.Position = 0;
using (BinaryReader br = new BinaryReader(smarket))
{
bytearray = br.ReadBytes((int)smarket.Length);
}
}
return Convert.ToBase64String(bytearray);
}
public static BitmapImage ToBitmapImage(this string base64String, int width = 0, int height =0)
{
if (string.IsNullOrEmpty(base64String))
return null;
try
{
var byteArray = Convert.FromBase64String(base64String);
BitmapImage bitmapImage = null;
bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.DecodePixelWidth = width;//需要缩略图的解码宽度
bitmapImage.DecodePixelHeight = height;//缩略图的解码高度
bitmapImage.StreamSource = new MemoryStream(byteArray);
bitmapImage.EndInit();
return bitmapImage;
}
catch
{
return null;
}
}
}
}

View File

@@ -12,6 +12,7 @@ using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Xml;
using System.Xml.Serialization;
@@ -646,6 +647,23 @@ namespace AIStudio.Wpf.DiagramDesigner
return new Matrix(double.Parse(pieces[0]), double.Parse(pieces[1]), double.Parse(pieces[2]), double.Parse(pieces[3]), double.Parse(pieces[4]), double.Parse(pieces[5]));
}
public static string SerializeBitmapImage(BitmapImage bitmapImage)
{
return bitmapImage.ToBase64String();
}
public static BitmapImage DeserializeBitmapImage(string bitmapImagestring)
{
try
{
return bitmapImagestring.ToBitmapImage();
}
catch
{
return null;
}
}
public static string SerializeObject(object obj, string serializableType = null)
{
if (serializableType?.ToLower() == ".xml")