此圖片為Base64字符串,如何做到的呢?以下內容將介紹實現步驟;
1、創建Base64字符串轉換器:
public class Base64ToImage : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var base64String = (String)value; if (string.IsNullOrEmpty(base64String)) return null; byte[] bytes = System.Convert.FromBase64String(base64String); System.IO.MemoryStream ms = new System.IO.MemoryStream(bytes); ImageSourceConverter imageSourceConverter = new ImageSourceConverter(); ImageSource source = null; source = (ImageSource)imageSourceConverter.ConvertFrom(ms); return source; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
2、XML導入引用:
xmlns:System="clr-namespace:System;assembly=mscorlib"
3、創建資源
<Window.Resources> <System:String x:Key="Base64String">圖片Base64</System:String> <local:Base64ToImage x:Key="Base64ToImage"/> </Window.Resources>
4、創建控件
<Image Height="64" Width="64" Source="{Binding Source={StaticResource Base64String},Converter={StaticResource Base64ToImage}}"/>
WPF調用Base64圖片到此結束,以下為圖片與字符串轉換輔助內容;
字符串與 Base64 轉換
1、將圖片數據轉換為Base64字符串
/// <summary> /// 將圖片數據轉換為Base64字符串 /// </summary> public static string ToBase64(Image img) { BinaryFormatter binFormatter = new BinaryFormatter(); MemoryStream memStream = new MemoryStream(); binFormatter.Serialize(memStream, img); byte[] bytes = memStream.GetBuffer(); return Convert.ToBase64String(bytes); }
2、將Base64字符串轉換為圖片
/// <summary> /// 將Base64字符串轉換為圖片 /// </summary> public static Image ToImage(string base64) { byte[] bytes = Convert.FromBase64String(base64); MemoryStream memStream = new MemoryStream(bytes); BinaryFormatter binFormatter = new BinaryFormatter(); return (Image)binFormatter.Deserialize(memStream); }