将RenderTargetBitmap转换为BitmapImage

时间:2012-12-21 09:25:43

标签: c# wpf bitmapimage rendertargetbitmap

我有RenderTargetBitmap,我需要将其转换为BitmapImage。请检查以下代码。

 RenderTargetBitmap bitMap = getRenderTargetBitmap();
 Image image = new Image();// This is a Image
 image.Source = bitMap;

在上面的代码中我使用了Image.Now我需要使用BitmapImage。我怎么能这样做?

 RenderTargetBitmap bitMap = getRenderTargetBitmap();
 BitmapImage image = new BitmapImage();// This is a BitmapImage
 // how to set bitMap as source of BitmapImage ?

2 个答案:

答案 0 :(得分:16)

虽然似乎没有必要将RenderTargetBitmap转换为BitmapImage,但您可以轻松地将RenderTargetBitmap编码为MemoryStream并解码{{ 1}}来自那个流。

WPF中有多个BitmapEncoders,下面的示例代码使用BitmapImage

PngBitmapEncoder

答案 1 :(得分:-2)

private async void Button_Click(object sender, RoutedEventArgs e)
{
    RenderTargetBitmap bitMap = new RenderTargetBitmap();
    await bitMap.RenderAsync(grid);
    Image image = new Image();// This is a Image
    image.Source = bitMap;
    image.Height = 150;
    image.Width = 100;

    grid.Children.Add(image);
}

这看起来更简单。