我正在创建一个处理非常大的图像文件的cad查看器,并且我正在尽可能优化帧率和内存占用空间。C#GDI +/System.Drawing.Graphics - 创建一个缓冲区并手动blitting?
它使用GDI +渲染到面板上。
目前的缺陷是图像渲染。我使用的一些文件参考图像特别大(8000x8000像素)。我已经优化了内存使用情况,只有在它们变得可见时加载它们,并在它们不存在时将它们处理掉。这样可以减少程序运行内存不足的可能性,但会妨碍图像经常加载和卸载;然而渲染图像本身(context.DrawImage)仍然带来非常大的开销。
我现在正在探索如何将图像分块成更小的缓冲区,渲染缓冲区(通常小得多),然后在缩放级别发生显着变化时刷新/重建缓冲区。
问题是,我无法在GDI中找到这方面的任何条款。任何人都可以建议我如何实现它?