
我很少寫工具教程,這次是因?yàn)楸籊IF壓縮(準(zhǔn)確的說的微信公眾號(hào)平臺(tái)的GIF尺寸要求)折磨慘了,所以特別想要分享一下自己是如何將《手機(jī)端表格設(shè)計(jì)》里的第二張動(dòng)效圖從原本的7.5M,在尺寸不變、保證畫質(zhì)的情況下壓縮至0.76M的。
我嘗試了很多一鍵壓縮工具后,發(fā)現(xiàn)要么尺寸達(dá)不到,要么畫質(zhì)下降太多,最后發(fā)現(xiàn)壓縮這種動(dòng)效圖還是PhotoShop最靠譜。壓縮GIF不外乎從四個(gè)方面著手:損耗、尺寸、幀數(shù)和顏色。前兩個(gè)大家使用一鍵壓縮工具時(shí)都有接觸,這里主要從幀數(shù)和顏色著手進(jìn)行高度無損壓縮。
壓縮前,寬度720像素、占用空間7.5MB(因?yàn)閳D片太大無法上傳,所以選取了中間一幀):

壓縮后,圖片尺寸不變,占用空間0.76M(774KB):

幀數(shù)壓縮
拿到原始的GIF,用PS打開后,我建議第一件事情是打開“窗口>時(shí)間軸”查看它的幀數(shù)。

GIF動(dòng)畫是由一張一張的圖片切換構(gòu)成的,對(duì)直接錄制的GIF而言,有多長(zhǎng)的動(dòng)畫就有多少幀。
通常的一鍵壓縮方式會(huì)將GIF里所有幀等同的無差別壓縮,這要很容易丟失關(guān)鍵信息。而用PS進(jìn)行手動(dòng)壓縮時(shí),我們就可以利用自己對(duì)動(dòng)畫的了解,進(jìn)行有差別的壓縮,去掉無用信息,保留有用信息。
刪除相同幀
你會(huì)發(fā)現(xiàn)大部分動(dòng)效圖前后都會(huì)有一段時(shí)間的靜止畫面,這些靜止畫面當(dāng)然是有用的,但是我們不需要那么多一模一樣的幀畫面重復(fù)幾十個(gè)來達(dá)到。
例如范例圖片的開頭靜止畫面有85幀。他們既然沒有差別,那么保留一幀就好。刪去前面多余的84幀。這對(duì)于原本四百多幀的動(dòng)畫而言,這個(gè)分量還是有感的。

但是開頭的靜止還是有用的啊,如何讓第一幀停留更長(zhǎng)的時(shí)間呢?非常簡(jiǎn)單,點(diǎn)擊幀方塊右下角的箭頭,從下拉框中選擇延遲時(shí)間。結(jié)尾相同幀也可以用這種方法去掉。

通常來說,前后各延遲0.5秒是差不多的。但是因?yàn)槲疫@個(gè)GIF先后是連貫的(第一幀和最后一幀的畫面是相同的,循環(huán)時(shí)沒有畫面突變),所以我去掉了結(jié)尾幀,把開頭幀延遲了1秒。
如果你愿意花時(shí)間的話,動(dòng)畫中間也有一些大量重復(fù)幀是可以用類似的方法去掉的。例如鼠標(biāo)指針移動(dòng)到按鈕上,然后點(diǎn)擊,這過程中指針肯定會(huì)有一定停頓,也能造成十幾二十個(gè)相同幀。
去除相同幀之后,原來四百多幀的動(dòng)畫輕輕松松被攔腰截到兩百多幀,而且看起來與原來的GIF沒有任何區(qū)別。你甚至還能夠通過修改幀延遲時(shí)間來調(diào)整動(dòng)畫節(jié)奏。
動(dòng)畫加速
前面提到過,一般一個(gè)動(dòng)畫的長(zhǎng)度和幀數(shù)是相對(duì)應(yīng)的,所以加快動(dòng)畫速度、減少動(dòng)畫時(shí)長(zhǎng),對(duì)壓縮GIF的效果也是很不錯(cuò)的。
尤其如果是錄制的動(dòng)效圖,整體的速度是很有可能需要提高的。例如錄制過程中,鼠標(biāo)指針從一個(gè)按鈕移動(dòng)到另一個(gè)按鈕的過程中,可能因?yàn)樗伎?、找地方甚至卡鼠?biāo)的原因?qū)е滤俣冗^慢。
Ezgif提供了Speed功能可以通過設(shè)定百分比來一鍵加速。使用PS的話,要做到這一點(diǎn)會(huì)稍微麻煩一點(diǎn)。例如你可以選擇所有編號(hào)為“X0”和“XX0”的幀進(jìn)行批量刪除。這樣一次就能刪除10%的幀數(shù)。雖然效率不是特別高,但是可能夠順便調(diào)整一下對(duì)整個(gè)動(dòng)畫的節(jié)奏(可以著重刪減想要提速的一小段),也是不錯(cuò)的。

處理完幀數(shù)后,原本的453幀減少到195幀,占用空間從7.5M縮小到2.2M。下圖就是這一步達(dá)到的效果,畫質(zhì)和尺寸并未收到絲毫影響:

顏色壓縮
我不建議過早對(duì)GIF對(duì)尺寸進(jìn)行處理,所以我們先來看看如何壓縮顏色。
在PS里選擇“儲(chǔ)存為 Web 所用格式”,你就會(huì)看到一個(gè)這樣對(duì)窗口:

不同于JPG格式,GIF動(dòng)畫有一張固定的顏色表,圖片中對(duì)所有顏色都會(huì)限制在這張表里。那如果需要表上沒有相近都顏色會(huì)怎樣呢?例如下面這張小圖看起來還好,但是放大后會(huì)發(fā)現(xiàn)明顯的仿色效果:


動(dòng)效GIF的一點(diǎn)特殊之處是它需要的顏色很少,例如本文范例中的關(guān)鍵顏色只不過黑、白、紫罷了,頭像里雖然有很豐富的顏色,但是那么小的區(qū)域就算有一定失真也不會(huì)影響整體效果。
自動(dòng)刪減顏色
首先,你可以先大膽地把256個(gè)顏色減少到16個(gè)(需要注意的是,最好選擇“擴(kuò)散透明度仿色”,這樣能夠在色彩很少的情況下畫面質(zhì)量好一點(diǎn)):

你會(huì)發(fā)現(xiàn)圖片看起來并沒有太糟糕,頭像的失真在動(dòng)畫中很容易被忽略。相比之下,占用空間卻從2.066M減小到了935.7K(約等于0.91M,窗口左下角可以看到預(yù)估大?。?/p>
手動(dòng)刪減顏色
即便只剩下16個(gè)顏色了,其實(shí)還有壓縮空間。仔細(xì)看一下顏色表,你會(huì)發(fā)現(xiàn)有那么幾個(gè)顏色看起來非常相似,對(duì)普通人來說其實(shí)很難分辨。

嘗試著刪除看上去相似的顏色,但是注意一定要保留關(guān)鍵色,例如黑色、白色、紫色、頭像里人臉的棕色。

再看看窗口左下角的占空空間,又減小了一兩百K!如果你覺得顏色還原度不高,可以調(diào)高仿色的百分比(我選的是0%),但是這樣可能會(huì)增加一百來K。
壓縮完顏色之后,圖片尺寸沒有變化,畫質(zhì)沒有損耗,只是局部顏色產(chǎn)生偏差。占用空間從2.2M縮小到了774K(即0.75M)。

尺寸
現(xiàn)在GIF已經(jīng)壓到了原來的10%,你再獲取想要的尺寸就容易多了。例如你把寬度改成480像素后,占用空間就減小到四百多K了,相對(duì)之前的7.5M,這幾乎只剩5%了。壓到這種程度,已經(jīng)遠(yuǎn)小于普通的靜態(tài)圖了。

——
未經(jīng)允許請(qǐng)勿轉(zhuǎn)載
