<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在前面做過一個Gif圖片合成的小工具,老朋友應該有所印象。但是,近段時間有人反映合成了的Gif圖片該如何進行分解呢?
於是,再次瞭解了一下PIL模組的Image,果真是可以做動圖分解的。
使用PIL庫,實際上是來源於pillow庫的相容,因此需要安裝pillow非標準庫。
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow
安裝好pillow非標準庫之後,將PIL模組中Image影象處理模組匯入到程式碼塊中即可。
from PIL import Image
同時,將os系統操作模組匯入進來用於對資料夾或檔案來進行操作。
import os
匯入一個紀錄檔模組loguru來記錄紀錄檔列印,在之前的文章中也介紹過,由於這個模組匯入即用比較方便我們這裡直接使用它來列印紀錄檔。
from loguru import logger
這裡,我們的目的是將一個Gif圖片直接分解成png格式的多個圖片。首先對單張動態圖片完成分解。
建立一個函數sptGif,來實現對單張Gif圖片分解的過程。
def spt_gif_one(gif_path, tar_dir, format="png"): ''' 分解單張Gif圖片 :param gif_path: Gif 圖片路徑 :param tar_dir: 分解後的儲存路徑 :param format: 分解成的圖片格式,預設為PNG格式的圖片 :return: ''' gif_file_name = os.path.basename(gif_path) logger.info("當前gif動態圖片路徑:{}".format(gif_file_name)) base_name = str(gif_file_name).split('.')[0] image = Image.open(gif_path) for n in range(image.n_frames): gen_file_name = base_name + '_' + str(n) image.seek(n) image_new = Image.new("RGBA", image.size) image_new.paste(image) image_new.save(os.path.join(tar_dir, "%s.%s" % (gen_file_name, format))) logger.info('檔名稱:{}已生成!'.format(gen_file_name))
若是在gif圖片比較到的情況下,則可以選擇批次分解的方式來進行分解。
一般選擇將所有需要分解的gif圖片直接放在統一的資料夾下面來完成批次分解。實現思路是通過遍歷該資料夾下面的所有的gif圖片挨個對其完成分解。
def spt_gif_batch(gif_dir, tar_dir): ''' 批次分解Gif動態圖片 :param gif_dir: :param tar_dir: :return: ''' if os.path.isdir(gif_dir): files = os.listdir(gif_dir) for file in files: gif_path = os.path.join(gif_dir, file) if os.path.splitext(gif_path)[1] in '.gif': spt_gif_one(gif_path, tar_dir) else: logger.info('{} 檔案格式檢查不正確!'.format(gif_path)) else: logger.info('{} 資料夾不存在!'.format(gif_dir))
我呼叫批次生成的函數spt_gif_batch進行了效果測試。
從Google上面直接下載一張Gif的動態圖片,原圖是這樣的效果。
隨後,對其進行了批次分解的執行,os.getcwd()表示生成的圖片放在當前的路徑下面。
spt_gif_batch(os.getcwd(), os.getcwd())
控制檯這時也按照預期列印出了紀錄檔,紀錄檔還是比較漂亮的,哈哈~
完成後,總共生成了25張png格式的圖片,我下面跳了其中的幾張展示出來。
到此這篇關於Python實現Gif圖片分解的範例程式碼的文章就介紹到這了,更多相關Python Gif圖片分解內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45