QQ表情是png圖但為什麼會動?
QQ表情另存為以後是png圖片,按道理png圖是不應該會動的。存出來是不會動。但把它從QQ中打開就會動了這是為什麼呢
瀉藥
首先傳統的.png確實是不會動的,不過這個世界上的png並不只一種
這裡介紹一下APNG
Apng格式下的圖片是可以動起來的,而且這個格式不僅會動,而且一度被人看成能代替gif的格式,可見其技術優勢。
之所以下載之後也不會動,那是因為APNG屬於爹不疼娘不愛的標準。推出之後沒多久PNG協會又搞出了一種MNG標準,希望大力推廣它,雖然沒什麼卵用吧,但是造成了很多很多平台不支持apng,我印象中的主流應用里firefox還是資次它的。如@波一 所說,QQ的表情現在是APNG格式了(後綴依然是png),我這邊放瀏覽器里也能動。
你可以嘗試用APNG Disassembler把每一幀都拆出來:
https://sourceforge.net/projects/apngdis/
也可以把做好的序列用APNG Assembler合併成APNG:
https://sourceforge.net/projects/apngasm/
當然,我自己做了一些嘗試:
先把「難過」和「再見」拆了,然後把「再見」的手摳下來給「難過」(我用的Ae),接著導出序列幀;
分別用Ps和APNG Assembler合成GIF和APNG,然後看圖上那個GIF的白邊(這好像跟Alpha通道的演算法有關);
發到QQ里,GIF的質量反而高一些(白邊依然去不掉),APNG被QQ認成PNG然後壓得不像話,特別是手機上看,簡直辣雞(而且還不會動)。
原因嘛,我猜測是官方表情每個QQ里都有,所以直接調本地的圖就行;不是欽定的圖那就直接視為圖片咯~
QQ的表情(能動的)好像都是9幀/秒,然後28x28px的大小。
關於APNG的一些代碼:
https://stackoverflow.com/questions/12859424/extracting-png-files-from-apng-in-java
另存出來的和原始的是同一文件嗎?用eif解壓工具看看吧
把qq的apk文件解壓,裡面搜gif,就能搜出來廬山真面目啦
首先,PNG是不會動的。其次,你保存的圖片很有可能只是被改了個後綴名由GIF改成了PNG
等待答案
推薦閱讀:
※龍珠高清gif動圖 iphone 壁紙?
※你有哪些珍藏的貓和老鼠gif表情包?
※QQ空間中最近流行的傾斜手機走路速度就會變快的GIF是如何實現的?
※Photoshop CS6 怎麼將圖片連成GIF圖像?