在给Image控件设置图像源的时侯发现,可以在XMAL中设置,也可以在代码中(Image.source=new BitmapImage(Uri uri)),
有时候我们要得到的图形资源为Bitmap或者Image,他们在System.Drawing名称空间下面,不能直接和强制转换。
1.Bitmap转换为BitmapImage
/// <summary>
/// 处于不同名称空间
/// Bitmap向BitmapImage转换
/// </summary>
/// <param name="bitmap">要更换的bitmap</param>
/// <returns></returns>
private BitmapImage BitmapToBitmapImage(System.Drawing.Bitmap bitmap)
{
BitmapImage bitmapimage = new BitmapImage();
using(MemoryStream ms=new MemoryStream()) //using结束释放掉资源
{
try
{
//将bitmap保存到ms流中,以他自己的格式
bitmap.Save(ms, bitmap.RawFormat);
//初始化bitmapimage
bitmapimage.BeginInit();
bitmapimage.StreamSource = ms;
bitmapimage.CacheOption = BitmapCacheOption.OnLoad;
bitmapimage.EndInit();
//无法更改
bitmapimage.Freeze();
}
catch (Exception e)
{
MessageBox.Show("读取错误!");
}
}
return bitmapimage;
}
将bitmap转化为流作为bitmapimage的源。
2.将bitmapimage转换为bitmap
暂时没有找到有效的解决方法。