我只是想知道是否有人知道(性能明智的wp7)最好的方式來更新一個像素的WriteableBitmap像素...我可以看到Pixels.SetValue方法,可以採取一種顏色和一個地點。但可以肯定更快的選擇是先設置一個數組,那麼的SetValue(theArray)一次全部......這樣的事情...WriteableBitmap SetValue性能/ Texture2D SetData
Int32[] pixels = bmp.Pixels;
for(Int32 y = 479; y > 0; y--)
for (Int32 x = 0; x < 480; x++)
{
pixels[x + (y * 480)] = 0;
}
bmp.Pixels.SetValue(pixels);
但犯規似乎是選擇???
objviously我在這裏只設置都爲黑色......但如果我想要做更多...
所以基本上,我只是問什麼是操作的最佳方式/創建由像素的位圖像素並獲得最佳性能? (想想每個打勾更新位圖)
編輯:我只注意到Texture2D.SetData <Int32>(theArray)有這個功能,任何人都可以評論這個表現嗎?或者可能推薦一個更好的方法來做到這一點?
我不認爲位圖和卓越的性能。你想刷新60fps的整個屏幕? – Dykam 2012-02-17 11:56:08
僅僅因爲你傳遞了一個數組,方法不會變得更快。 WriteableBitmap.Pixels只是一個數組,當您嘗試從WriteableBitmap生成實際圖像時完成處理。因此,將自己的所有值寫入像素數組中,或者調用將在像素數組中複製數組內容的方法的性能方面大致相同。 – 2012-02-17 12:31:23
我改變了它稍微.. UpdateInterval設置爲TimeSpan(60000),我只是操作一個Int32 [] _pixels =新的Int32 [230400],並在繪製事件我只是調用myTexture2D.SetData(_pixels)它似乎很順利...我還沒有在設備上測試過它,但是... –
Wacka
2012-02-17 12:31:23