成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WPF顯示動態GIF技巧分享

開發 開發工具
WPF顯示動態GIF是一個比較新的技術,剛剛接觸WPF開發工具的朋友對于這一方法的使用還是不太熟練的。希望大家可以充分掌握之一應用技巧。

WPF開發工具能夠幫助我們實現許多基于圖形界面顯示的相關功能。在這里我們就先來了解一下有關WPF顯示動態GIF的一些方法。#t#

在我們尋求幫助的時候,最不愿意聽到的答復是:很抱歉,在當前版本的產品中還沒有實現該功能... 在WPF中顯示動態的GIF圖像時便遇到了這樣的問題,WPF中強大的Image控件卻不支持動態的GIF(其只能顯示***幀).當然,我們可以說WPF 強大的動畫能力,讓我們完全有理由拋棄傳統的GIF動畫,但如某種情況下如果你覺得使用動態的GIF更合適的話(比如QQ表情,因為GIF是利于保存和傳輸的),沒關系,本篇隨筆將幫助你解決這個問題.

1,曾有過的嘗試:

我們在實際開發過程中也遇到WPF顯示動態GIF的問題.發現普通的Image控件不能正常顯示后,我們又發現網頁瀏覽器卻是可以的,以及 windows XP的"圖片和傳真查看器"也可以,但"Window Live照片庫"卻不可以.所以我們最初打算使用通過包裝WebBrowseControl來實現,即是在WPF中host一個.net2.0中的瀏覽器控件,然后讓該瀏覽器來實現圖片,成功了,但麻煩的事情是鼠標右鍵可以點出網頁的上下文菜單.

我們放棄了該方案,除了不愿意花時間來屏蔽上下文菜單和瀏覽器控件的多余功能外,同時我們的覺得瀏覽器控件過于"重量級",有點殺雞用牛刀的感覺.另外,你可能會想到使用WPF中的Frame控件,但也會得到上述結果.另外,有網友說可以使用MediaElement控件,但大都沒有成功,我也沒有(可能是RP不夠哈,呵呵...)

2,GifBitmapDecoder

我們發現WPF中有一個名為GifBitmapDecoder的類,其可以將WPF顯示動態GIF分解成很多幀并保存在一個列表中,每一幀為一個BitmapFrame類型的對象,其父類為BitmapSource,這也就意味著,我們可以將每一幀賦值給一個Image控件的Source屬性,這樣我們可以得到針對GIF各幀的Image系列:

  1. GifBitmapDecoder decoder = 
    new GifBitmapDecoder( new Uri
    ("OH.gif",UriKind.Relative),
    BitmapCreateOptions.PreservePixel
    Format,BitmapCacheOption.Default);   
  2. foreach (BitmapFrame f in 
    decoder.Frames)   
  3. {   
  4. Image image = new Image(); 
    image.Source = f;  
  5. this.panel1.Children.Add(image);   

3,解析GIF

要解析文件就必須知道文件的存儲結構,比如,得到幀的顯示時間的方法是這樣的:

 

  1. private   
  2. int ParseGraphicControlExtension
    (byte[] gifData, int offset)   
  3. {   
  4. int returnOffset = offset;   
  5. // Extension Block   
  6. int length = gifData[offset + 2];  
  7. returnOffset = offset + length + 2 + 1;  
  8. byte packedField = gifData[offset + 3];
     
    currentParseGifFrame.disposalMethod =
     (packedField & 0x1C) 
    >> 2;   
  9. // Get DelayTime   
  10. int delay = BitConverter.ToUInt16
    (gifData, offset + 4);   
  11. currentParseGifFrame.delayTime = delay;   
  12. while (gifData[returnOffset] != 0x00) 
    returnOffsetreturnOffset = 
    returnOffset + gifData[returnOffset] + 1;   
  13. } returnOffset++;   
  14. return returnOffset;   
  15. }  

以上就是對WPF顯示動態GIF的相關方法的介紹。

責任編輯:曹凱 來源: IT168
相關推薦

2009-12-23 17:07:37

WPF性能

2009-12-24 09:38:27

WPF用戶線程

2009-12-29 11:01:46

WPF淡入效果

2009-12-28 10:40:13

WPF調用Winfor

2009-12-25 10:11:46

WPF后臺控制動畫

2009-12-25 17:39:01

WPF驗證

2009-11-27 11:08:11

PHP動態網站開發

2009-11-30 11:10:12

PHP顯示MySQL亂

2010-03-03 16:25:41

Python字符串顯示

2010-01-14 16:04:32

VB.NET顯示時間

2010-03-04 14:21:17

2009-12-25 09:44:52

WPF窗口設置

2024-07-25 08:48:49

WPFGIF動畫包管理器

2009-07-16 13:50:28

AWT和Swing

2009-12-23 15:16:52

WPF數據綁定

2009-12-28 15:01:39

WPF樹應用

2009-12-15 10:23:23

Ruby應用技巧

2009-12-23 10:46:38

WPF實現用戶界面

2009-12-25 09:34:50

WPF顯示HTML

2009-12-28 11:14:29

WPF顯示文本
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久国产一区二区三区 | 亚洲高清成人 | 一区中文字幕 | 日韩久久精品电影 | 亚洲一区中文字幕在线观看 | 粉嫩一区二区三区四区公司1 | h网站在线观看 | 久久久久久久久淑女av国产精品 | 无码国模国产在线观看 | 99久久免费精品 | av日日操 | 中文字幕丁香5月 | 欧美视频精品 | 国产精品观看 | 午夜欧美一区二区三区在线播放 | 在线观看亚洲专区 | 国产精品1区| 91中文字幕在线 | 国产农村妇女毛片精品久久麻豆 | 欧美二区三区 | 久久精彩视频 | 91极品尤物在线播放国产 | 国产99在线 | 欧美 | 精品久久国产视频 | 91色综合| 国产电影一区二区三区爱妃记 | 久草免费视 | 国产免费黄网 | 亚洲精品在线视频 | 日韩一区二区免费视频 | 一区二区视频 | 欧美一级电影免费 | 久久精品国产一区二区电影 | 欧美aaa| 日本在线看 | 亚洲精品一区二区三区四区高清 | 免费不卡视频 | 黄 色 毛片免费 | 精精国产xxxx视频在线播放 | 久草视频观看 | 国产精品夜夜春夜夜爽久久电影 |