今天整理算法的時候發現在過去在c++中用uint指針訪問32位argb位圖時,每次偏移量正好一個象素,所以直接使用“++”而不是“+= 4”。同理,當直接用座標訪問時,應使用“i * stride / 4 + j” 而不是“i * stride + j”。但轉移到c#代碼時發現,如果同樣使用uint指針訪問位圖,當stride等于width*4時可能不會有問題,一旦noffset不為0,將會出現問題。但次bug沒有證實每次都會發生。找時間要修正一下代碼,在算法沒有改進的情況下,還是建議使用byte類型指針做位圖訪問。
文章來源:http://spaces.msn.com/sharkoo/blog/cns!d8e832ce4545af!153.entry 
補充:當鎖定位圖全部時,stride=width*4,當鎖定的是位圖的一部分時,stride將會不等于width*4。
,歡迎訪問網頁設計愛好者web開發。新聞熱點
疑難解答