1

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

我在 Win2D 画布上渲染图像。该图像首先由拼凑平铺位图以形成大图像组成。我将其称为“基础图像”。

然后我使用各种“绘图”调用来标记基本图像,并且我还在基本图像上放置其他位图,以创建最终图像。

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

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

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

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

保罗

4

1 回答 1

2

你的直觉就在这里——你很可能通过只绘制一次图像然后重用它的缓存版本来获得巨大的性能提升。

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

于 2016-10-19T04:41:15.657 回答