
此图片为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);
}
