WPF base64(WPF Image 控件调用Base64字符串图片)
此图片为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); }