簡體   English   中英

在C#Windows窗體中繪制大量圖像

[英]Drawing a big number of images in C# Windows Forms

我正在為C#Windows Forms中的游戲創建一個地圖編輯器。 我需要的是一個網格,甚至需要存儲幾千個圖像。

我的第一種方法是創建一個Panel控件,然后添加多個PictureBoxes 不幸的是,2000張圖片需要大約3秒鍾才能畫出

然后我決定嘗試在PanelOnPaint()方法中創建Rectangles並在它們上繪制Images ,希望得到更好的結果,但它仍然很慢。

有沒有更好,更有效的方法在Windows窗體中呈現如此多的圖像?

提前感謝任何建議。

像你一樣使用Paint事件,但......

作為加載圖像的一部分,緩存縮放版本,其中將16個圖像合並為一個,這只有125個圖像,當您縮小某個比例時,切換到使用預渲染的縮小版本。

您可以根據需要隨時進行多個縮放級別,並且可以隨時在屏幕上保留盡可能少的圖像。 所以你可以再把它除以4。

我這樣做是為了一個包含65536張圖像(256 x 256)的地圖的項目。 緩存也寫入磁盤,因此每次縮小時都會看到相同數量的圖像。 在我的編輯中,我只能在任何時候查看16張圖像,即使我正在查看整個地圖。

您可以通過了解用戶可用的選項(例如平移和縮放)來進一步改進這一點,這為您提供了用戶下一步可能查看的有限圖像子集,因此您可以預加載這些圖像以提高性能。

你最初會增加加載時間,但我敢打賭你已經有很長的加載時間從磁盤上拉出2000張圖像

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM