【C#】Winform 顯示動(dòng)態(tài)gif圖片的方法
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
方法一(簡(jiǎn)單):用label,然后設(shè)置為背景圖片 方法二:使用GDI+ 來實(shí)現(xiàn) (很粗略的實(shí)現(xiàn),沒有幀間隔)
方法三:(推薦)
方法四: 使用.NET 自帶的類:System.Drawing.ImageAnimator 例子:摘自(http://www.cnblogs.com/cpw999cn/archive/2009/02/07/1385885.html) 最近在做一個(gè)圖片查看器,由于使用一般的PctureBox,在性能和縮放控制上都無法滿足預(yù)期的要求,因此所有組件的呈現(xiàn)均是通過重寫控件的OnPaint事件來繪制。在查看gif圖片時(shí)發(fā)現(xiàn)Graphics.DrawImage只呈現(xiàn)第一幀,無法滿足預(yù)期要求,因此經(jīng)過摸索尋找到了解決自繪gif的較好辦法。 這里介紹一個(gè).net自身攜帶的類ImageAnimator,這個(gè)類類似于控制動(dòng)畫的時(shí)間軸,使用ImageAnimator.CanAnimate可以判斷一個(gè)圖片是否為動(dòng)畫,調(diào)用ImageAnimator.Animate可以開始播放動(dòng)畫,即每經(jīng)過一幀的時(shí)間觸發(fā)一次OnFrameChanged委托,我們只要在該委托中將Image的活動(dòng)幀選至下一幀再迫使界面重繪就可以實(shí)現(xiàn)動(dòng)畫效果了。 為了方便以后的使用,我將這些代碼整合到了一起,形成一個(gè)AnimateImage類,該類提供了CanAnimate、FrameCount、CurrentFrame等屬性,以及Play()、Stop()、Reset()等動(dòng)畫常用的方法,代碼如下:
使用如下方法調(diào)用:
該文章在 2024/12/14 12:39:21 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |