大佬們好
小弟作業需求,用Winform寫了一個控制元件,繼承自panel,在他的onpaint方法中重繪顯示圖片,圖片會很長(線掃相機),到15K*40K的樣子,然后我需要在圖片上做繪圖(調整大小,平移等,均實作)
問題:每次調整上層繪圖都需要重繪整個panel,當顯示圖片較大時,顯示很慢很慢,這導致調整上層繪圖的內容時也很卡
然后想著跟WPF一樣,上面覆寫一層別的控制元件,設定為透明來執行繪圖,下層只顯示圖片,然后我就裂開了
不管通過通過任何方式重繪上層覆寫的控制元件,整個區域都會重繪,然后底層的圖片層依舊會重繪
想了下,嘗試了
1 掛起下層控制元件特定時候聰慧:呼叫control.SuspendLayout();無用
2 攔截訊息SendMessage(pbxImage.Handle, WM_SETREDRAW, 0, IntPtr.Zero);無用
想問問各路大姥姥們,有沒有什么想法可以探索
之所以非要使用winform,是因為影像要顯示為位圖,即放大后要能看到清晰度灰度,WPF沒找打有什么方法可以實作這種繪制
可用20分全部奉上;(雖然大佬也不在乎
uj5u.com熱心網友回復:
6億像素的圖片?那直接加載肯定卡!解決辦法:金字塔切片,參考百度地圖等.
uj5u.com熱心網友回復:
目前沒有做過多操作,直接從記憶體截取一部分生產新的bitmap來顯示,現實問題是還好,畢竟也不會不停的拖動,現在就是繪制,是否有不重繪下層圖片只重繪上層顯示的方法
uj5u.com熱心網友回復:
多弄幾個bmp不就弄出層次來了?轉載請註明出處,本文鏈接:https://www.uj5u.com/net/228649.html
標籤:C#
上一篇:C# 將json資料 post發送到服務器 并response回傳一個json資料 代碼走到response時報錯
