gpt4 book ai didi

wpf - 获取 wpf WriteableBitmap 的 DrawingContext

转载 作者:行者123 更新时间:2023-12-02 22:51:28 25 4
gpt4 key购买 nike

有没有办法获取WriteableBitmapDrawingContext(或类似的东西)? IE。允许您调用简单的 DrawLine/DrawRectangle/etc 类型的方法,而不是直接操作原始像素。

最佳答案

我发现 Sixlettervariables 的解决方案是最可行的。但是,缺少“drawingContext.Close()”。根据 MSDN 的说法,“必须先关闭 DrawingContext,然后才能呈现其内容”。结果是以下实用函数:

public static BitmapSource CreateBitmap(
int width, int height, double dpi, Action<DrawingContext> render)
{
DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
render(drawingContext);
}
RenderTargetBitmap bitmap = new RenderTargetBitmap(
width, height, dpi, dpi, PixelFormats.Default);
bitmap.Render(drawingVisual);

return bitmap;
}

然后可以像这样轻松使用:

BitmapSource image = ImageTools.CreateBitmap(
320, 240, 96,
drawingContext =>
{
drawingContext.DrawRectangle(
Brushes.Green, null, new Rect(50, 50, 200, 100));
drawingContext.DrawLine(
new Pen(Brushes.White, 2), new Point(0, 0), new Point(320, 240));
});

关于wpf - 获取 wpf WriteableBitmap 的 DrawingContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/88488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com