在C#winforms中是否有其他绘图图像?
我使用g.DrawImage作为输出图像,如下所示:在C#winforms中是否有其他绘图图像?,c#,winforms,drawimage,onpaint,C#,Winforms,Drawimage,Onpaint,我使用g.DrawImage作为输出图像,如下所示: g.DrawImage(Resources.dayPict, x1, myY, 20, 20); 但这条路并不快。我怎样才能画得更快 另外,当我画很多图像时,我会有延迟。 这个目标是否有一个特殊的缓冲区?有助于优化: 1) 调用没有大小的方法,如下所示:g.DrawImage(Resources.dayPict,x1,myY) 2) 更少使面板无效(仅计时器,而非鼠标事件) 如果我想调整图像的大小,我会制作新图像。这是一个用于绘制图像和UI
g.DrawImage(Resources.dayPict, x1, myY, 20, 20);
但这条路并不快。我怎样才能画得更快
另外,当我画很多图像时,我会有延迟。
这个目标是否有一个特殊的缓冲区?有助于优化:
1) 调用没有大小的方法,如下所示:g.DrawImage(Resources.dayPict,x1,myY)
2) 更少使面板无效(仅计时器,而非鼠标事件)
如果我想调整图像的大小,我会制作新图像。这是一个用于绘制图像和UI的优秀库。我已经用过很多次了,这真是太棒了。你在用什么样的控件?您是否尝试过在表单上设置DoubleBuffered属性?我认为您也可以将其他控件的缓冲区加倍,但您必须对其进行编码,而不是使用专用属性@musefan我不相信双缓冲在这里会有帮助,如果它会降低性能,而不是提高性能的话。双缓冲用于减少闪烁。井绘制是一个昂贵的过程,因此您必须以其他方式进行优化。例如,最好将图形移出绘制事件。图像多久改变一次?例如,如果它们不更改形状,则可以在加载表单时将它们全部绘制一次,这将是将它们全部绘制到一个大图像的情况。然后,如果在窗体上放置图片框并移动它们,则只需在面板上绘制一个图像(可能在绘制事件中),这将为您进行一些内置优化,例如不绘制完全覆盖的图像。你的图像是透明的,还是有不透明度贴图?