哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

馬哥Linux運(yùn)維 ? 來源:電子發(fā)燒友網(wǎng) ? 作者:工程師譚軍 ? 2018-07-13 08:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

安裝

可以通過PyPi安裝

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

或者通過Git

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

為什么你需要這個(gè)庫?

問:我是一個(gè)Python迷,并且對(duì)迷宮的生成和迷宮解決的辦法非常感興趣。我很羨慕別人能夠做出生成迷宮的動(dòng)畫。我如何能夠用Python自己做一個(gè)迷宮動(dòng)畫,然后把我的成果展示給其他人呢?(我知道tkinter, pyglet 和 pyqt,但是它們很難發(fā)布給別人看)

答:現(xiàn)在,你可以使用庫gifmaz來做這件事了,它有一些很好的特性:

1、它是純Python編寫的,沒有第三方依賴,只使用內(nèi)置模塊?。ㄈ绻阆氚褎?dòng)畫嵌入圖片,那么你需要PIL,PIL雖然不是內(nèi)置模塊,但是任何Python版都支持PIL。除此之外再?zèng)]有其他的依賴了)

2、它運(yùn)行速度很快,而且?guī)酌腌娋湍苌蓛?yōu)化過的GIF圖片。每個(gè)GIF通常都包含上千幀,但是GIF大小確只有幾百KB。

3、你可以繪制各種各樣的迷宮動(dòng)畫,和解迷宮動(dòng)畫。

4、代碼都有很好的注釋,文檔有很好的范例,而且文檔很完整。

這個(gè)庫的一個(gè)教程

首先我們需要構(gòu)建一個(gè)GIFSurface對(duì)象(類似cairo的ImageSurface類),我們的動(dòng)畫將會(huì)畫在這個(gè)對(duì)象上。同時(shí),我們需要指定圖片的大小和可用的顏色數(shù)量。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這里color_depth=2意味著調(diào)色板中有2^2=4種顏色,bg_color=0說明調(diào)色板中的第0個(gè)顏色被作為背景色。

只要你還沒有最后保存圖片,你都可以更改設(shè)置調(diào)色板,你可以這樣做

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

所以圖片中可以用的顏色有:黑、白、品紅、黑。

然后我們構(gòu)建一個(gè)環(huán)境,生成的動(dòng)畫基于這個(gè)環(huán)境構(gòu)建(類似cairo的Context類)。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

然后我們?cè)O(shè)置這個(gè)動(dòng)畫的控制參數(shù)

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這些參數(shù)的意思是“每20步渲染一幀,幀之間間隙0.05s,調(diào)色板中第四個(gè)顏色作為通明度通道”。

我們有了繪制動(dòng)畫的“桌面”,和繪制動(dòng)畫需要的參數(shù),接下來就是實(shí)際地畫一個(gè)迷宮了。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

這個(gè)語句在圖片中央繪制了一個(gè)迷宮,然后在四邊留了8像素的空白,迷宮中每一格在圖片中占據(jù)5像素*5像素的大小。

然后讓我們運(yùn)行Prim的迷宮算法。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

其中我加了兩個(gè)延遲幀,以便我們能夠看清楚動(dòng)畫的過程。

完成了!讓我們把這個(gè)動(dòng)畫保存到GIF文件。

怎樣用Python制作迷宮GIF 本文將告訴你訣竅

下面是運(yùn)行結(jié)果,大小小于300K,很贊吧!

當(dāng)然,你也可以把多個(gè)算法整合進(jìn)一個(gè)動(dòng)畫。下面的動(dòng)畫展示了隨機(jī)深度優(yōu)先搜索算法和A*搜索算法。(這個(gè)圖片只有120K)

這個(gè)庫的原理是什么?

這個(gè)庫實(shí)際上是一個(gè)GIF的編碼庫,算法運(yùn)行過程中,動(dòng)畫幀被編碼為BytesIO文件。只有在調(diào)用save方法時(shí),動(dòng)畫才會(huì)真正地被存入圖片。

深度資料

1、什么是GIF:http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp。

2、迷宮生成算法:http://weblog.jamisbuck.org/2011/2/7/maze-generation-algorithm-recap

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4883

    瀏覽量

    90295
  • GIF
    GIF
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    7059

原文標(biāo)題:用Python制作迷宮GIF

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    01. 如何在 Allegro 中快速區(qū)別不同網(wǎng)絡(luò)?| 芯巧Allegro PCB 設(shè)計(jì)小訣竅

    Allegro PCB設(shè)計(jì)小訣竅系列--如何在Allegro中快速區(qū)別不同網(wǎng)絡(luò)背景介紹:Allegro PCB設(shè)計(jì)工具可以通過高亮操作選中的網(wǎng)絡(luò)點(diǎn)亮,但是當(dāng)我們的布線非常密集時(shí),是不太好去進(jìn)行
    發(fā)表于 04-03 15:51

    使用PYTHON進(jìn)行的跨平臺(tái)仿真

    應(yīng)用案例,其中我們?cè)谝痪S和二維光柵上執(zhí)行參數(shù)掃描。 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真 我們演示如何使用Python在VirtualLab Fusion中運(yùn)行光學(xué)仿真
    發(fā)表于 04-02 08:21

    [VirtualLab] 使用Python運(yùn)行VirtualLab Fusion光學(xué)仿真

    Fusion的簡(jiǎn)單方法。在本示例中,我們演示如何使用Python腳本運(yùn)行光學(xué)仿真,以向用戶簡(jiǎn)要概述這種跨平臺(tái)的仿真能力。 例概覽 文件路徑 用戶可以在樣本文件的文件夾中找到所有
    發(fā)表于 03-31 09:39

    如何使用 Python I2C LCD 與 VIsionFive 一起使用?

    我剛剛發(fā)布了一篇關(guān)于 I2C LCD 與 VisionFive 一起使用的新文章。可以檢查一下。 注意:這是基于 libgpiod 庫,我已經(jīng)在使用這個(gè)庫。您可
    發(fā)表于 03-30 06:52

    如何制作 rt117x 閃存驅(qū)動(dòng)程序?

    的RAM中運(yùn)行它,然后升級(jí)程序。但是現(xiàn)在我不知道如何制作這個(gè)閃存驅(qū)動(dòng)器。因此,我想問一下 FAE 是否可以告訴我如何制作它,或者是否有一個(gè)使用 rt1170 制作閃存驅(qū)動(dòng)器的 DEMO
    發(fā)表于 03-04 06:38

    Python運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問

    本文介紹使用Python搭建本地Web服務(wù)并結(jié)合 ZeroNews 實(shí)現(xiàn)公網(wǎng)訪問。
    的頭像 發(fā)表于 02-06 11:39 ?327次閱讀
    <b class='flag-5'>Python</b>運(yùn)行本地Web服務(wù)并實(shí)現(xiàn)遠(yuǎn)程訪問

    沒有專利的opencv-python 版本

    專利風(fēng)險(xiǎn),僅需避開 opencv-contrib-python 的 nonfree 模塊(或直接無頭版)。 如果的場(chǎng)景需要特定功能(如特征提取、目標(biāo)跟蹤),可以告訴我具體需求,我?guī)?/div>
    發(fā)表于 12-13 12:37

    LABVIEW 2023 Q1調(diào)用python后一直報(bào)錯(cuò)1671

    程序后續(xù)重新下載python,python版本改為3.6.0(32位,同labview版本:Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 201
    發(fā)表于 11-12 09:51

    Python調(diào)用API教程

    兩個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、Requests庫發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP
    的頭像 發(fā)表于 11-03 09:15 ?1163次閱讀

    Python 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    一、技術(shù)選型:為什么選 Python 而不是 Java? 結(jié)論: “調(diào)研階段 Python,上線后如果 QPS 爆表再考慮 Java 重構(gòu)?!?二、整體架構(gòu)速覽(3 分鐘看懂) 三、開發(fā)前準(zhǔn)備(5
    的頭像 發(fā)表于 10-21 16:59 ?621次閱讀
    <b class='flag-5'>用</b> <b class='flag-5'>Python</b> 給 Amazon 做“全身 CT”——可量產(chǎn)、可擴(kuò)展的商品詳情爬蟲實(shí)戰(zhàn)

    自制巡線解迷宮機(jī)器人(上)

    一玩,當(dāng)然如果在使用的過程中遇到了一些問題,歡迎在GitHub上給我提交Issues或者在文章評(píng)論區(qū)里留言,有空的話我肯定會(huì)及時(shí)回復(fù)的。 巡線解迷宮機(jī)器人圖1原理 硬件 電機(jī)電源層 電機(jī)電源層
    發(fā)表于 10-20 10:39

    如何使用 NVTFAT 顯示 GIF?

    如何使用 NVTFAT 顯示 GIF
    發(fā)表于 09-04 06:47

    termux調(diào)試python猜數(shù)字游戲

    termux做一個(gè)猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實(shí)現(xiàn)方案,結(jié)合Python實(shí)現(xiàn)(最適配Termux環(huán)境): ? 一、環(huán)境準(zhǔn)備(Termux基礎(chǔ)配置) 1.
    發(fā)表于 08-29 17:15

    基礎(chǔ)篇3:掌握Python中的條件語句與循環(huán)

    Python編程語言中,條件語句和循環(huán)是構(gòu)成復(fù)雜邏輯和數(shù)據(jù)處理的基石。本篇基礎(chǔ)教程幫助您深入了解Python中的條件語句和循環(huán)結(jié)構(gòu),讓您能夠更好地控制程序流程。 條件語句 條件語句允許程序根據(jù)
    發(fā)表于 07-03 16:13

    單片機(jī)項(xiàng)目實(shí)例:STM32上JPG_GIF圖片顯示并支持縮放

    單片機(jī)項(xiàng)目實(shí)例:STM32上JPG_GIF圖片顯示并支持縮放,推薦下載!
    發(fā)表于 06-03 22:10
    班戈县| 攀枝花市| 慈溪市| 衡东县| 平和县| 临城县| 崇文区| 桐梓县| 连城县| 藁城市| 禄丰县| 巫山县| 东辽县| 长宁县| 梨树县| 韩城市| 安徽省| 工布江达县| 张北县| 兴业县| 宁夏| 苍溪县| 芜湖县| 略阳县| 青田县| 云安县| 宁武县| 三门峡市| 通州区| 南通市| 德庆县| 裕民县| 文安县| 武宁县| 南雄市| 渭南市| 山东| 阿巴嘎旗| 寿宁县| 太康县| 虞城县|