我正在創建一個處理非常大的圖像文件的cad查看器,並且我正在儘可能優化幀率和內存佔用空間。C#GDI +/System.Drawing.Graphics - 創建一個緩衝區並手動blitting?
它使用GDI +渲染到面板上。
目前的缺陷是圖像渲染。我使用的一些文件參考圖像特別大(8000x8000像素)。我已經優化了內存使用情況,只有在它們變得可見時加載它們,並在它們不存在時將它們處理掉。這樣可以減少程序運行內存不足的可能性,但會妨礙圖像經常加載和卸載;然而渲染圖像本身(context.DrawImage)仍然帶來非常大的開銷。
我現在正在探索如何將圖像分塊成更小的緩衝區,渲染緩衝區(通常小得多),然後在縮放級別發生顯着變化時刷新/重建緩衝區。
問題是,我無法在GDI中找到這方面的任何條款。任何人都可以建議我如何實現它?