将椭圆绘制为阵列
本文关键字:阵列 绘制 | 更新日期: 2023-09-27 18:25:47
希望这是一个相当简单的答案,但这不是谷歌搜索最容易的事情。
我计划使用简单的形状进行大量绘制,但实际结果直到最后阶段才需要显示给用户,所以为了速度起见,我想知道c#/WPF中是否有现有的方法可以在没有BitmapSource开销的情况下将简单的形状绘制到缓冲区,所以最后我可以将其复制到WritableBitmap中。
类似的东西
PixelFormat pixelFormat = PixelFormats.Default;
int stride = bitmapWidth * pixelFormat.BitsPerPixel / 8;
byte[] pixels new byte[bitmapHeight * stride];
*some static library*.DrawOval(xpos=10,ypos=10,radius=5, pixels, stride, pixelFormat);
感谢
示例:
DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
drawingContext.DrawEllipse(null, new Pen(Brushes.Black, 1), new Point(100, 100), 50, 50);
}
Drawing drawing = drawingVisual.Drawing;
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
drawingContext.DrawDrawing(drawing);
drawingContext.DrawEllipse(null, new Pen(Brushes.Black, 1), new Point(100, 100), 60, 60);
}
RenderTargetBitmap bitmap = new RenderTargetBitmap(200, 200, 96, 96, PixelFormats.Default);
bitmap.Render(drawingVisual);