gpt4 book ai didi

c# - 在 C# Windows 窗体中绘制大量图像

转载 作者:太空狗 更新时间:2023-10-29 23:33:00 27 4
gpt4 key购买 nike

我正在使用 C# Windows 窗体为游戏创建 map 编辑器。我需要的是一个可以存储数千张图像的网格。

我的第一个方法是创建一个 Panel 控件,然后向其添加多个 PictureBoxes。不幸的是,绘制 2000 张图像大约需要 3 秒。

然后我决定尝试在 PanelOnPaint() 中创建 Rectangles 并在其上绘制 Images希望得到更好结果的方法,但它仍然很慢。

有没有更好、更有效的方法来在 Windows 窗体中呈现这么多图像?

提前感谢您的任何建议。

最佳答案

像您所做的那样使用 Paint 事件,但是...

作为图像加载的一部分,缓存缩小版本,将 16 张图像合并为一张,只有 125 张图像,当缩小超过一定比例时,切换到使用预渲染的缩小版本.

对于多个缩放级别,您可以根据需要随时执行此操作,以便随时在屏幕上保留尽可能少的图像。所以你可以再除以 4。

我为一个包含 65536 张图像 (256 x 256) 的 map 的项目执行此操作。缓存也被写入磁盘,因此每次缩小时您都会看到相同数量的图像。在我的编辑器中,我一次只能查看 16 张图像,即使我正在查看整张 map 也是如此。

您可以通过了解用户的可用选项(例如平移和缩放)进一步改进这一点,这会为您提供用户接下来可能查看的有限图像子集,因此您可以预加载这些图像以提高性能。

您最初会增加加载时间,但我敢打赌您已经有大量的加载时间从磁盘中拉出 2000 张图像

关于c# - 在 C# Windows 窗体中绘制大量图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13158625/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com