chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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)注

    56

    文章

    4848

    瀏覽量

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

    關(guān)注

    0

    文章

    24

    瀏覽量

    6963

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

    如何使用 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

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

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

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

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

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

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

    如何python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?1052次閱讀
    如何<b class='flag-5'>將</b><b class='flag-5'>python</b>文件導(dǎo)入到ROS系統(tǒng)中

    使用Python實(shí)現(xiàn)xgboost教程

    使用Python實(shí)現(xiàn)XGBoost模型通常涉及以下幾個(gè)步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評(píng)估和模型預(yù)測(cè)。以下是一個(gè)詳細(xì)的教程,指導(dǎo)如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?1968次閱讀

    NE555制作點(diǎn)焊機(jī)

    NE555制作點(diǎn)焊機(jī),電路簡(jiǎn)單,容易制作。需要一個(gè)12v的鉛酸蓄電池。實(shí)際焊接效果很好。
    發(fā)表于 11-08 15:05 ?33次下載

    內(nèi)網(wǎng)穿透是什么?——用你家快遞的例子來告訴

    有沒有試過這樣的情況?家里網(wǎng)速很快,設(shè)備很多,但當(dāng)你想要在外面通過手機(jī)或者電腦遠(yuǎn)程控制家里的電腦、NAS、攝像頭時(shí),卻發(fā)現(xiàn)怎么都連不上?這就是因?yàn)槟慵依?b class='flag-5'>用的網(wǎng)絡(luò)屬于“內(nèi)網(wǎng)”,而你手機(jī)的網(wǎng)絡(luò)屬于“外網(wǎng)”,它們像是兩個(gè)完全不同的
    的頭像 發(fā)表于 11-04 10:57 ?923次閱讀

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓的開發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?1224次閱讀

    Python中多線程和多進(jìn)程的區(qū)別

    Python作為一種高級(jí)編程語言,提供了多種并發(fā)編程的方式,其中多線程與多進(jìn)程是最常見的兩種方式之一。在本文中,我們探討Python中多線程與多進(jìn)程的概念、區(qū)別以及如何使用線程池與進(jìn)
    的頭像 發(fā)表于 10-23 11:48 ?1227次閱讀
    <b class='flag-5'>Python</b>中多線程和多進(jìn)程的區(qū)別

    請(qǐng)問TAS5706如何用硬件控制I2C?

    TAS5706 的Control Interface可以HW,SW。我想問問怎樣用HW來控制呢?因?yàn)槲乙粋€(gè)板上預(yù)計(jì)8個(gè)TAS5706,MCU怎樣去識(shí)別?
    發(fā)表于 10-23 08:33

    多個(gè)TLV320AIC3254一路I2C總線對(duì)其配置可行嗎?

    一片CPU3片TLV320AIC3254做音頻處理,想用一路I2C總線對(duì)其配置可行嗎? 地址好像是唯一的 0011000沒法設(shè)置,手冊(cè)中又提到可使用10位地址但是沒找到說明怎樣用,哪位大俠用過
    發(fā)表于 10-22 07:54

    一款青少年電子制作機(jī)器人產(chǎn)品優(yōu)化

    基于原有造型需要重新設(shè)計(jì)電路,實(shí)現(xiàn)小車走迷宮的效果。 迷宮為立體迷宮,通過超聲波檢測(cè)路口來轉(zhuǎn)彎。 懂電路設(shè)計(jì)和pcb設(shè)計(jì)的來, 有償!??! 聯(lián)系微信:18395996587
    發(fā)表于 10-17 13:35