[英]Dock Fill affects flood fill result
我正在寫一個像MS Paint這樣的繪圖程序。 畫布是一個面板,並放置在另一個面板中,因此我可以使用滾動條。 對於填充操作,我實現了洪水填充算法。 為了存儲圖形,我創建了一個位圖,並在繪制事件時將該位圖繪制到了屏幕上。
如果我按原樣保留畫布的Dock屬性(即:無),它將留下一個未填充的三角形區域。 如果將Dock屬性更改為Fill,該算法將正常運行,但是在這種情況下,我將無法再控制畫布大小。 在這兩種情況下,我的填充算法都沒有碰到畫布(它處理了我之前創建的位圖),Dock如何影響我的填充結果?
以下是簡化的代碼和生成的圖像。 每個程序產生兩個圖像:填充操作之前的位圖和泛洪填充之后的位圖。
只要想通了,我的指數計算是錯誤的:而不是使用bmpData.Stride
,我用img.Width
,因此我的代碼訪問的圖像填充,其中包含未初始化的數據。 畫布面板只是偶然地更改了該數據。 另一個錯誤是按顏色字節順序進行的,我使用紅綠色藍色,而實際上是藍綠色紅色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.