Android GIF 編解碼

來源:互聯網
上載者:User

  最近在研究GIF在Android上的實現,並有一些心得。現在分享出來,希望跟大家能一起實現。

  起初看到GIF在手機上的實現,是在iphone上的gif快手的一個應用,感覺還不錯,也想在android上實現,後來去查了一下。原來Android上也有了,也叫GIF快手,下了一個,體驗還不錯的說。反編譯出來(不好意思啦,你應該用混淆編譯的嘛)。發現解碼是用的java演算法,但是編碼是調用的jni。好吧,接下來就是Google了。

  關於gif的編解碼還是有蠻多的,我找了一個java演算法的,然後對應著gif快手的解碼演算法修改了下,因為java演算法裡用到了awt,所以在android上要修改。

  最後修改成功,大致的過程是:

  1.初始化GifDecoder。

  2.設定bitmap和每幀delay時間,

  3.開始decode,得到frameCount,

  4.通過handler設定delay,拿到每一幀的buf,然後重繪ondraw就ok了。效果還不錯哦

  代碼我就不貼了。有需要的點我qq找我要,

  至於gif的編碼,蠻糾結的,我照著gif解碼的demo來反推,到是能將3張圖片加入到一個gif檔案裡,但是在顯示的時候只顯示第一張圖片,有點鬱悶,編碼的java演算法不能完全改成android的。所以會出這樣的問題吧。

  好吧,既然不行,那就換別的辦法吧,Google、看到了microsoft的.net類庫的支援

  http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.gifbitmapdecoder.aspx

  哎。不適用,看到別人寫的c演算法,或者是java演算法,也不是很適用,糾結啊。求高手,一起研究啊,我找了一些資料,可以一起研究,節約時間。

  如果找到合適的編碼方式,我會及時的公布出來,有不對的地方也請大家指正。tks。

 

 source download


 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.