我有一個.png文件,我想繪製,問題是,我正在繪製這個PNG每秒的1/10,所以這是每秒10次。這個png是用X和Y座標作爲中間點繪製的,所以圖像的中間是X和Y座標。使用gdi + flickerfree繪圖+
使用此代碼:
private void frmMap_Paint(object sender, PaintEventArgs e)
{
Bitmap FlashLight = new Bitmap(
Image.FromFile(AppDomain.CurrentDomain.BaseDirectory + @"light.png"), 4000, 2160);
e.Graphics.DrawImage(FlashLight, new Point(mapX, mapY));
}
問題是雖然,這種繪製PNG每秒10次時,不斷變化的X和Y座標在閃爍的很多結果。
有沒有人有任何想法如何減少或消除閃爍?我已經考慮繪製位圖關閉屏幕,並加載它一旦完成繪圖,我不知道如何做到這一點。
我也研究過雙緩衝,這再次我不知道如何使用它來減少我的閃爍。
看起來像你正在繪製到窗體上。它有一個屬性'DoubleBuffered',這是第一步。但不要太希望;使用Winforms的動畫是相當有限的.. – TaW
此外,你正在重新加載位圖上的每個繪畫迭代。這超出了浪費。只做一次。 – Rotem
@TaW你會推薦使用什麼動畫?因爲我只是在新的位置重新繪製PNG,但重畫的問題是屏幕變白,整個PNG被重繪。它不一定是流暢的動畫,它可以是矮胖的,但不會閃爍太多 – BramSnoek