Convert RenderTargetBitmap to BitmapImage

I have a RenderTargetBitmap , I need to convert it to BitmapImage . Please check the code below.

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

In the above code, I used Image.Now I need to use BitmapImage. How can i do this?

  RenderTargetBitmap bitMap = getRenderTargetBitmap(); BitmapImage image = new BitmapImage();// This is a BitmapImage // how to set bitMap as source of BitmapImage ? 
+8
c # wpf bitmapimage rendertargetbitmap
source share
2 answers

Although BitmapImage don't need to convert BitmapImage to convert a BitmapImage , you can easily encode a RenderTargetBitmap to a MemoryStream and decode BitmapImage from this stream.

There are several BitmapEncoders in WPF, the example below uses PngBitmapEncoder .

 var renderTargetBitmap = getRenderTargetBitmap(); var bitmapImage = new BitmapImage(); var bitmapEncoder = new PngBitmapEncoder(); bitmapEncoder.Frames.Add(BitmapFrame.Create(renderTargetBitmap)); using (var stream = new MemoryStream()) { bitmapEncoder.Save(stream); stream.Seek(0, SeekOrigin.Begin); bitmapImage.BeginInit(); bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.StreamSource = stream; bitmapImage.EndInit(); } 
+14
source share
 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); } 

It looks like a simpler solution.

-2
source share

All Articles