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圖像?

TAG:平面設計 | 圖片 | GIF | 圖像處理軟體 |