91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么實現Gif圖片分解

發布時間:2022-08-17 10:35:34 來源:億速云 閱讀:240 作者:iii 欄目:開發技術

這篇“Python怎么實現Gif圖片分解”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Python怎么實現Gif圖片分解”文章吧。

1、模塊安裝

使用PIL庫,實際上是來源于pillow庫的兼容,因此需要安裝pillow非標準庫。

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow

2、模塊導入

安裝好pillow非標準庫之后,將PIL模塊中Image圖像處理模塊導入到代碼塊中即可。

from PIL import Image

同時,將os系統操作模塊導入進來用于對文件夾或文件來進行操作。

import os

導入一個日志模塊loguru來記錄日志打印,在之前的文章中也介紹過,由于這個模塊導入即用比較方便我們這里直接使用它來打印日志。

from loguru import logger

3、分解動圖

這里,我們的目的是將一個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))

4、批量分解

若是在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))

5、生成效果

我調用批量生成的函數spt_gif_batch進行了效果測試。

從Google上面直接下載一張Gif的動態圖片,原圖是這樣的效果。

Python怎么實現Gif圖片分解

隨后,對其進行了批量分解的執行,os.getcwd()表示生成的圖片放在當前的路徑下面。

spt_gif_batch(os.getcwd(), os.getcwd())

控制臺這時也按照預期打印出了日志,日志還是比較漂亮的,哈哈~

Python怎么實現Gif圖片分解

完成后,總共生成了25張png格式的圖片,我下面跳了其中的幾張展示出來。

Python怎么實現Gif圖片分解

Python怎么實現Gif圖片分解

Python怎么實現Gif圖片分解

以上就是關于“Python怎么實現Gif圖片分解”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永春县| 渝中区| 炎陵县| 扎赉特旗| 铁岭市| 阳泉市| 宣汉县| 潼南县| 平邑县| 乌拉特前旗| 井冈山市| 黔西| 亳州市| 南郑县| 无为县| 重庆市| 茌平县| 德庆县| 涪陵区| 麻栗坡县| 乐陵市| 互助| 峡江县| 百色市| 丰都县| 湖南省| 获嘉县| 双鸭山市| 五原县| 杭锦旗| 肃北| 呼伦贝尔市| 肇州县| 宜兰县| 宜章县| 阿城市| 泾阳县| 克东县| 丘北县| 阜新市| 许昌县|