从DrawingGroup获取图像

本文关键字:图像 获取 DrawingGroup | 更新日期: 2023-09-27 17:51:13

也许这是一个愚蠢的问题,但我有一些问题找到正确的答案:S

如何从DrawingGroup得到Bitmap 's或Image 's(或类似的东西)?我都不知道怎么咬。我试着在网上找,但是找不到有用的东西。

从DrawingGroup获取图像

如果您需要使用图像作为图像控件的源,您可以简单地将绘图放入DrawingImage:

var drawing = ...
var drawingImage = new DrawingImage(drawing);
image.Source = drawingImage;

如果问题是关于创建BitmapSource(即可以通过BitmapFrame由BitmapEncoder编码的东西),则没有直接转换。你必须将图像放入中间图像控件中,并将该控件渲染为RenderTargetBitmap,这是一个BitmapSource:

var drawing = ...
var drawingImage = new DrawingImage(drawing);
var image = new Image { Source = drawingImage };
var bitmap = new RenderTargetBitmap(100, 100, 96, 96, PixelFormats.Pbgra32);
image.Arrange(new Rect(0, 0, bitmap.Width, bitmap.Height));
bitmap.Render(image);