10/03/2021

製作gif動圖的2個方式:使用Python與Keynote

前陣子出於行銷需求,我想要自己製作gif動圖來吸引潛在客戶的目光。由於是實驗性質,也沒有預算可以花錢請人製作,於是就探索了一下DIY的可能性——用自己粗淺的Python知識湊出程式碼來用,很幸運有成功。後來呢,我又驚喜的發現,原來Mac電腦裡的Keynote軟體就可以用來製作「動畫式gif」(應該是我個人後知後覺吧~)以下就來介紹兩種製作gif動圖的方法。


使用imageio函式庫,製作gif動圖


我使用的是imageio這個函式庫,跑程式之前須先安裝它。我是在MacBook Pro裡面使用Python,所以進入終端機之後,以下列語法安裝:

pip install imageio


接下來,就是寫Python程式來完成任務。gif動圖生成的邏輯算是簡單的,首先要有至少2張圖片(我先把它們存在同一個檔案夾內,例如myfile檔案夾)。程式碼要做的,是把圖片名稱存入一個列表裡。接著利用imageio語法逐一讀取圖片,然後存為gif檔案格式。


import os

import imageio



#建立一個儲存檔案名稱的空列表

file_names = [ ]


#從存有圖片的檔案夾中,讀取圖片檔案名稱。然後要加上檔案夾路徑,然後存在列表中。

for file in os.listdir(path='./myfile'):

    if file[-5:] == '.jpeg':

        file_names.append('./myfile/' + file)


print(file_names)


#建立一個儲存圖片的空列表

images = []


#把一開始儲存檔案名稱的列表叫出,逐一存入圖片列表

for i in file_names:

    print(i)

    images.append(imageio.imread(i))


#存為gif動圖格式

imageio.mimsave('output.gif', images, fps=0.8)






目前我發現這組程式碼的缺點是,我無法指定圖片出現的順序。如果圖片出現的順序不是預期的,會有點傷腦筋。目前補救方式,只能重複多跑兩次程式,看看會不會出現一次是正確的順序這樣。



用Keynote製作動畫式gif


用Keynote軟體製作gif動圖,需要把圖片貼到Keynote的頁面上,再存為動畫式gif。


1. 開啟Keynote,新增檔案。點選右上角的「文件」,在右側清單下方設定「幻燈片大小」。寬和高依照需要而定,這裡先用350px的正方形製作。(雖然可設定更大,但儲存時最大為480px)




2. 把圖片一一貼到Keynote頁面上。如有需要,還可以利用這個軟體的編輯功能,在頁面上增加文字或圖案。編輯完成後,選擇「檔案」--「輸出至動畫式gif」。




3. 儲存之前,要設定好參數。這些參數可自己選擇、比較不同效果。要注意的是,內建的解析度只有480x480。如果你需要更高的解析度,那就無法使用這個方式製作動圖了。





這個就是Keynote生成的gif檔案。我還發現,用Keynote製作出的GIF檔案會比較大,例如這次製作,python的GIF圖vs.Keynote的GIF圖=146KB vs. 1.3MB。