我有一个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 ?发布于 2012-12-21 18:59:34
尽管似乎没有必要将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();
}发布于 2016-09-11 06:42:56
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);
}这看起来是一个更简单的解决方案。
https://stackoverflow.com/questions/13987408
复制相似问题