目錄
1、需求分析
2、技術分析
3、環境安裝
4、原始碼展示:
5、總結:
前幾天想做個gif 圖片,在網上搜了一陣沒有找到合適的gif的制作軟體,最后在群里問了下群里的同學推薦了一款gif 軟體叫gifCam,用起來還不錯,只有幾百K的大小,我想我是不是也可以做一個gif制作器,因此今天就是主要為這件事而做,
廢話不多說直接進入技術階段,在python中通過搜索找到了一個叫Pillow 的圖形庫,在研究了一番之后,發現能解決自己的問題,
1、需求分析
我的需求就是能錄制gif 圖片,因為第一次做這種東西,所以需要分解需求,
步驟一:我需要能錄屏,也就是截屏功能,將當前螢屏保存,技術方案暫時沒定,延期!
步驟二:我需要能把截屏的圖片進行合并,合成gif圖片,已經找到合適的庫,立即做,
步驟三:將python檔案進行界面友好化,非核心功能,延期,
整個的核心功能是對圖片進行合成,所以我今天要做的就是先找一些圖片進行合成為gif
2、技術分析
我機器上的環境是python3.8
需要的包是Pillow,注意需要匹配你的python版本,建議使用下面的方式進行安裝
3、環境安裝
控制臺輸入下面的命令:
pip install Pillow
或者
pycharm中File -> Settings -> 選擇+ 號->在搜索框中輸入需要安裝的包Pillow ->選擇需要安裝的包 install Package ->等待 安裝完成,參考下面的圖
![]()

4、原始碼展示:
show me code!
# coding:utf-8
import os
from PIL import Image
# author :香菜
# 制作gif
imgFolderPath = "E:\\child\\bug\\WxBot\\xin\\beauty"
fileList = os.listdir(imgFolderPath)
firstImgPath = os.path.join(imgFolderPath, fileList[0])
im = Image.open(firstImgPath)
images = []
for img in fileList[1:]:
imgPath = os.path.join(imgFolderPath, img)
images.append(Image.open(imgPath))
im.save('beauty.gif', save_all=True,append_images =images,loop = 0,duration=2000)
代碼解讀:
imgFolderPath :是圖片所在的檔案夾
os.listdir(imgFolderPath) 列出所有的檔案名,回傳串列
firstImgPath = os.path.join(imgFolderPath, fileList[0]) 拼接首個影像的絕對地址
im = Image.open(firstImgPath) 將第一個檔案作為第一幀
for img in fileList[1:]: 遍歷剩下的所有圖片,讀取加入images 串列
im.save('beauty.gif', save_all=True,append_images =images,duration=2000) 當前功能的核心函式
beauty.gif 是要保存的gif 檔案全名
save_all 保存所有的影像
duration=2000 每幀圖片播放2000毫秒
loop = 0 GIF圖片一直重復回圈( loop=0,如果設定為 1,則回圈1次,設定為2則回圈2次,以此類推)
執行上面的代碼,可以看到在py所在的目錄下生成了beauty.gif,可以用看圖軟體看下,完美

5、總結:
1.存在的問題:我放入的圖形大小不一樣,所以導致后面如果出現比較小的圖形遮蓋不住前面的影像
2.這只是簡單的實作了核心需求,還有其他的周邊功能需要完善
3.記住核心功能代碼,并理解,下次遇到類似的問題手到擒來
im.save('beauty.gif', save_all=True,append_images =images,loop =0,duration=2000)
4.遍歷檔案夾下所有檔案
最后附上所有的資源:




趕緊點贊!!!
完整資源地址:https://download.csdn.net/download/perfect2011/20698832
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/292050.html
標籤:python
