UWP / Win2D - 将绘图保存在内存中

时间:2016-10-14 19:09:32

标签: uwp win2d

代码示例会很好,但只有一些关于处理这种情况的最佳方法的通用建议就足够了。

我在Win2D Canvas上渲染图像。图像首先拼凑拼贴位图以形成大图像。我称之为"基本图像"。

然后我使用各种" draw"调用标记基本图像,我也将其他位图放在基本图像上,以创建最终图像。

用户可以在任何方向上滚动图像和/或放大和缩小图像。跟踪鼠标移动并在画布上显示工具提示,以向用户提供详细信息。每次用户做任何影响图像的事情时,我都会重新绘制整个图像。在某些情况下,基本图像由多达46,000个微小位图组成。

即使使用这种严厉的方法,图像也会很快重绘,但这感觉就像是最糟糕的做法。

我的直觉告诉我,我应该渲染一次基本图像,保留在内存中,然后根据需要将其复制到画布上。之后,覆盖必要的位以完成图像。我无法找到任何建议如何为此目的保留内存位图的材料。我也不知道这是否是最恰当的方法。

对于最合适的行动方案的任何指导或建议都将不胜感激。

1 个答案:

答案 0 :(得分:2)

你的直觉在这里非常正确 - 通过只绘制一次图像然后重复使用它的缓存版本,你很可能会获得巨大的性能提升。

CanvasRenderTarget是解决此问题的方法:查看https://microsoft.github.io/Win2D/html/T_Microsoft_Graphics_Canvas_CanvasRenderTarget.htmhttps://microsoft.github.io/Win2D/html/Offscreen.htm作为起点。