希望这将是一个相当简单的答案,但这并不是谷歌最简单的事情。
我打算用简单的形状做很多绘画,但实际结果不需要在最后阶段显示给用户,所以为了速度,我想知道是否存在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);
由于
答案 0 :(得分:0)
示例:
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);