在WinForm中快速绘制容器中的像素

本文关键字:像素 WinForm 绘制 | 更新日期: 2023-09-27 18:14:34

我有一个相当大的窗体,其中一个像素绘制的位置移动,我有一个面板,这是所需的图像大小400,200 -我如何改变这个面板上的单个像素?我也需要最快的改变。

在WinForm中快速绘制容器中的像素

GDI+没有设置单个像素的方法,但是您可以在OnPaint事件中设置1x1矩形以达到相同的效果。这感觉有点像一个黑客,但是没有标准的方法来做到这一点。

SolidBrush brush = new SolidBrush(Color.White);
private void panel1_Paint(object sender, PaintEventArgs e)
{
    SetPixel(brush, e.Graphics, 10, 10, Color.Red);
}
public void SetPixel(SolidBrush brush, Graphics graphics, int x, int y, Color color)
{
    brush.Color = color;
    graphics.FillRectangle(brush, x, y, 1, 1);
}

你也可以直接访问位图并使用它的GetPixelSetPixel方法,但是如果你的像素需要快速更新,它们通常非常慢。