91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

安裝

可以通過(guò)PyPi安裝

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

或者通過(guò)Git

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

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

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

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

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

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

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

4、代碼都有很好的注釋?zhuān)臋n有很好的范例,而且文檔很完整。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

這個(gè)庫(kù)實(shí)際上是一個(gè)GIF的編碼庫(kù),算法運(yùn)行過(guò)程中,動(dòng)畫(huà)幀被編碼為BytesIO文件。只有在調(diào)用save方法時(shí),動(dòng)畫(huà)才會(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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

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

    關(guān)注

    0

    文章

    24

    瀏覽量

    7042

原文標(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)推薦

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

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

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

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

    沒(méi)有專(zhuān)利的opencv-python 版本

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

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

    程序后續(xù)重新下載pythonpython版本改為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庫(kù)發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP
    的頭像 發(fā)表于 11-03 09:15 ?875次閱讀

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

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

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

    一玩,當(dāng)然如果在使用的過(guò)程中遇到了一些問(wèn)題,歡迎在GitHub上給我提交Issues或者在文章評(píng)論區(qū)里留言,有空的話(huà)我肯定會(huì)及時(shí)回復(fù)的。 巡線(xiàn)解迷宮機(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中的條件語(yǔ)句與循環(huán)

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

    知道船變壓器有哪些嗎?

    在船舶和海洋平臺(tái)上,電力系統(tǒng)的穩(wěn)定運(yùn)行至關(guān)重要,而船變壓器作為其中的關(guān)鍵設(shè)備,其種類(lèi)繁多,各具特點(diǎn)。知道船變壓器有哪些嗎?讓我們一起來(lái)揭開(kāi)它們的神秘面紗。CSD船變壓器是船舶供
    的頭像 發(fā)表于 06-01 00:00 ?737次閱讀
    <b class='flag-5'>你</b>知道船<b class='flag-5'>用</b>變壓器有哪些嗎?

    python入門(mén)圣經(jīng)-高清電子書(shū)(建議下載)

    此資料內(nèi)容是一本針對(duì)所有層次的Python 讀者而作的Python 入門(mén)電子書(shū)。 全書(shū)分兩部分:第一部分介紹Python 編程所必須了解的基本概念,包括matplotlib、NumP
    發(fā)表于 04-10 16:53

    ?如何在虛擬環(huán)境中使用 Python,提升的開(kāi)發(fā)體驗(yàn)~

    RaspberryPiOS預(yù)裝了Python,需要使用其虛擬環(huán)境來(lái)安裝包。今天出版的最新一期《TheMagPi》雜志刊登了我們文檔負(fù)責(zé)人NateContino撰寫(xiě)的一篇實(shí)用教程,幫助你入門(mén)
    的頭像 發(fā)表于 03-25 09:34 ?811次閱讀
    ?如何在虛擬環(huán)境中使用 <b class='flag-5'>Python</b>,提升<b class='flag-5'>你</b>的開(kāi)發(fā)體驗(yàn)~

    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序?

    在這篇文章中,我將為簡(jiǎn)要介紹Python程序是什么、Python程序可以用來(lái)做什么,以及如何在RaspberryPi上編寫(xiě)和運(yùn)行一個(gè)簡(jiǎn)單的Python程序。什么是
    的頭像 發(fā)表于 03-25 09:27 ?2032次閱讀
    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行<b class='flag-5'>Python</b>程序?