欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例詳解

 更新時間:2023年11月19日 11:12:26   作者:River Chandler  
這篇文章主要介紹了Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例,文章通過代碼示例介紹的非常詳細,對大家的學習或工作有一定的幫助,感興趣的小伙伴可以自己動手試一下
  • Python 由多張圖片合成gif動畫 
  • 案例
import os
figure_save_path = "file_fig_test"
import warnings
warnings.filterwarnings("error")
import numpy as np
np.random.seed(0)
import matplotlib.pyplot as plt
from PIL import Image
import time
 
num = 100
gif_frames = []
open_time = []
save_time = []
plot_time = []
 
for i in range(num):
    #圖形繪制
    start_time = time.time()
    plt.scatter(np.random.random(), np.random.random())
    end_time = time.time()
    plot_time.append(end_time-start_time)
 
    #創(chuàng)建圖形保存文件夾
    if not os.path.exists(figure_save_path):
        os.makedirs(figure_save_path)
    else:
        pass
 
    #保存圖形
    start_time = time.time()
    plt.savefig(os.path.join(figure_save_path, str(i) + ".jpg"))
    end_time = time.time()
    save_time.append(end_time-start_time)
 
    #打開圖形
    start_time = time.time()
    img = Image.open(os.path.join(figure_save_path, str(i) + ".jpg"))
    end_time = time.time()
    open_time.append(end_time-start_time)
 
    gif_frames.append(img)
 
print("動畫繪制開始")
start_time = time.time()
gif_frames[0].save("test.gif",
        save_all=True, append_images=gif_frames[1:], duration=200, loop=0)
end_time = time.time()
print("動畫繪制完成,用時:", round(end_time-start_time, 6))
print("平均動畫繪制完成,用時:", round((end_time-start_time)/num, 6))
 
print("平均圖形繪制用時:", round(sum(plot_time)/len(plot_time), 6))
print("平均圖形保存用時:", round(sum(save_time)/len(save_time), 6))
print("平均圖形打開用時:", round(sum(open_time)/len(open_time), 6))
  • 動畫生成結果就不放了 
  • 讓我們看看什么操作最耗時

動畫繪制開始
動畫繪制完成,用時: 3.61503
平均動畫繪制完成,用時: 0.03615
平均圖形繪制用時: 0.004437
平均圖形保存用時: 0.146415
平均圖形打開用時: 0.000287

  • 這是保存圖形用時隨圖像數(shù)量的變化 
    • 考慮到繪制點數(shù)的增長,這是合理的

  •  這是圖形打開用時
    • 變換不大,這是合理的

  • 這是每次scatter的用時
    • 看上去也比較合理

  • 那我們再看看隨著圖片數(shù)量的增長,繪制動畫的用時變化
gif_time = []
for i in range(20, 100):
    new_frames = gif_frames[:i]
    start_time = time.time()
    new_frames[0].save(str(i)+".gif",
        save_all=True, append_images=gif_frames[1:], duration=200, loop=0)
    end_time = time.time()
    gif_time.append(end_time-start_time)
    print("finished:", str(i))

  • 這就比較迷
    • 不過問題不大

到此這篇關于Python利用PIL實現(xiàn)多張圖片合成gif動畫的案例詳解的文章就介紹到這了,更多相關Python PIL合成gif動圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python中的程序流程控制語句

    Python中的程序流程控制語句

    這篇文章主要介紹了Python中的程序流程控制語句,本篇博客將會講述一下Python語言中的流程控制語句,在高中我們數(shù)學中學過程序流程題,下面我們來看看python中得流程語句會是怎么樣呢,需要的小伙伴可以參考一下
    2022-02-02
  • 一文帶你全面理解Python中的self

    一文帶你全面理解Python中的self

    對于初學Python的同學來說,在class中經(jīng)??吹絪elf。那么,到底self是個啥?這篇文章小編就來帶大家深入了解一下,希望對大家有所幫助
    2023-03-03
  • python爬取分析超級大樂透歷史開獎數(shù)據(jù)

    python爬取分析超級大樂透歷史開獎數(shù)據(jù)

    這篇文章主要介紹了python爬取分析超級大樂透歷史開獎數(shù)據(jù),本次使用了requests和beautifulsoup庫進行數(shù)據(jù)的爬取,通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python自動化測試筆試面試題精選

    Python自動化測試筆試面試題精選

    在本篇文章里小編給大家整理的是一篇關于Python自動化測試筆試面試時常見的編程題,需要的朋友們可以學習參考下。
    2020-03-03
  • 詳解Swift中屬性的聲明與作用

    詳解Swift中屬性的聲明與作用

    Swift中的屬性可以被分為存儲屬性和計算屬性,本文將為大家詳解Swift中屬性的聲明與作用,需要的朋友可以參考下
    2016-06-06
  • python常用數(shù)據(jù)結構字典梳理

    python常用數(shù)據(jù)結構字典梳理

    這篇文章主要介紹了python常用數(shù)據(jù)結構字典梳理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • python 借助numpy保存數(shù)據(jù)為csv格式的實現(xiàn)方法

    python 借助numpy保存數(shù)據(jù)為csv格式的實現(xiàn)方法

    今天小編就為大家分享一篇python 借助numpy保存數(shù)據(jù)為csv格式的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中使用kitti數(shù)據(jù)集實現(xiàn)自動駕駛(繪制出所有物體的行駛軌跡)

    Python中使用kitti數(shù)據(jù)集實現(xiàn)自動駕駛(繪制出所有物體的行駛軌跡)

    這篇文章主要介紹了Python中使用kitti數(shù)據(jù)集實現(xiàn)自動駕駛——繪制出所有物體的行駛軌跡,本次內(nèi)容主要是畫出kitti車的行駛的軌跡,需要的朋友可以參考下
    2022-06-06
  • Python結合Flask框架構建一個簡易的遠程控制系統(tǒng)

    Python結合Flask框架構建一個簡易的遠程控制系統(tǒng)

    這篇文章主要為大家詳細介紹了如何使用Python與Flask框架構建一個簡易的遠程控制系統(tǒng),能夠遠程執(zhí)行操作命令(如關機、重啟、鎖屏等),還具備實時屏幕截圖功能,需要的可以參考下
    2025-03-03
  • 巧用python和libnmapd,提取Nmap掃描結果

    巧用python和libnmapd,提取Nmap掃描結果

    本文將會講述一系列如何使用一行代碼解析 nmap 掃描結果,其中會在 Python 環(huán)境中使用到 libnmap 里的 NmapParser 庫,這個庫可以很容易的幫助我們解析 nmap 的掃描結果
    2016-08-08

最新評論