[英]Convert RenderTargetBitmap to BitmapImage
我有一個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 ?
雖然似乎沒有必要將RenderTargetBitmap
轉換為BitmapImage
,但您可以輕松地將RenderTargetBitmap
編碼為MemoryStream
並從該流中解碼BitmapImage
。
WPF中有幾個BitmapEncoders ,下面的示例代碼使用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();
}
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);
}
這看起來更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.