色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

馬哥Linux運維 ? 來源:電子發燒友網 ? 作者:工程師譚軍 ? 2018-07-13 08:57 ? 次閱讀

安裝

可以通過PyPi安裝

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

或者通過Git

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

為什么你需要這個庫?

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

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

1、它是純Python編寫的,沒有第三方依賴,只使用內置模塊!(如果你想把動畫嵌入圖片,那么你需要PIL,PIL雖然不是內置模塊,但是任何Python版都支持PIL。除此之外再沒有其他的依賴了)

2、它運行速度很快,而且幾秒鐘就能生成優化過的GIF圖片。每個GIF通常都包含上千幀,但是GIF大小確只有幾百KB。

3、你可以繪制各種各樣的迷宮動畫,和解迷宮動畫。

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

這個庫的一個教程

首先我們需要構建一個GIFSurface對象(類似cairo的ImageSurface類),我們的動畫將會畫在這個對象上。同時,我們需要指定圖片的大小和可用的顏色數量。

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

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

只要你還沒有最后保存圖片,你都可以更改設置調色板,你可以這樣做

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

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

然后我們構建一個環境,生成的動畫基于這個環境構建(類似cairo的Context類)。

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

然后我們設置這個動畫的控制參數

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

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

我們有了繪制動畫的“桌面”,和繪制動畫需要的參數,接下來就是實際地畫一個迷宮了。

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

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

然后讓我們運行Prim的迷宮算法

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

其中我加了兩個延遲幀,以便我們能夠看清楚動畫的過程。

完成了!讓我們把這個動畫保存到GIF文件。

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

下面是運行結果,大小小于300K,很贊吧!

當然,你也可以把多個算法整合進一個動畫。下面的動畫展示了隨機深度優先搜索算法和A*搜索算法。(這個圖片只有120K)

這個庫的原理是什么?

這個庫實際上是一個GIF的編碼庫,算法運行過程中,動畫幀被編碼為BytesIO文件。只有在調用save方法時,動畫才會真正地被存入圖片。

深度資料

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

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84970
  • GIF
    GIF
    +關注

    關注

    0

    文章

    24

    瀏覽量

    6612

原文標題:用Python制作迷宮GIF

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    谷景告訴插件功率電感壞了可以什么替代

    谷景告訴插件功率電感壞了可以什么替代 編輯:谷景電子 當插件功率電感損壞時,我們能否其他類型的電感來替代?這是一個非常實用的問題,且很多人一直在問。尤其是在電子設備維修和設計領域
    的頭像 發表于 09-22 20:27 ?285次閱讀

    怎樣用THS3201實現輸出功率可調?

    怎樣用THS3201實現輸出功率可調?
    發表于 08-26 08:28

    OPA735加OPA333,怎樣用TINA TI去仿真?

    當輸入信號VG1從7.06V慢慢變化到7.22V時。 輸出電壓Vout的變化必須是接近線性變化的。我想知道我該怎樣用TINA TI去仿真?怎樣設置那個輸入信號VG1才能達到我的目的。因為這個電壓源好像
    發表于 08-02 08:39

    pytorch和python的關系是什么

    ,PyTorch已經成為了一個非常受歡迎的框架。本文介紹PyTorch和Python之間的關系,以及它們在深度學習領域的應用。 Python簡介
    的頭像 發表于 08-01 15:27 ?2208次閱讀

    怎樣用表測穩壓管穩壓值

    表是一種常用的電子測量工具,可以用來測量電壓、電流、電阻等多種參數。在測量穩壓管的穩壓值時,我們可以使用萬表的直流電壓測量功能。以下是步驟和注意事項: 準備工具和材料 萬表 穩壓管 電源
    的頭像 發表于 07-31 14:26 ?1917次閱讀

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發表于 07-30 09:14 ?1005次閱讀
    <b class='flag-5'>怎樣用</b>Arduino測試鋰電池容量

    python寫驗證環境cocotb

    本文介紹了cocotb的安裝、python tb文件的寫法、xrun仿真cocotb的腳本等,我們來看看體驗如何。
    的頭像 發表于 07-24 09:38 ?605次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>python</b>寫驗證環境cocotb

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,將會看到一些 Python 實現文件復制的特殊
    的頭像 發表于 07-18 14:53 ?461次閱讀

    pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?934次閱讀

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?

    怎樣用STM8L的PB3/TIM2_TRIG的引腳測量脈寬?
    發表于 05-07 06:55

    stm32f100怎樣用重映射功能?

    的是stm32f100c8t6b芯片,現在想用PB1映射為TIM1_CH3N,在調用GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM1)時, GPIO_PinAFConfig和GPIO_AF_TIM1都沒定義,st
    發表于 05-07 06:06

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼?

    STM32F412G-DISCO怎樣用MX生成fatfs的代碼? SD卡例程能跑,但mx生成的代碼不能正常運行,我生成代碼后是不是還要配置一些東西?(我生成后只寫了測試代碼) 問題解決了,雖然我不知道我為什么不能直接使用mx生成的代碼去操作sd卡,但我通過復制粘貼例程的代碼完成了測試。
    發表于 03-12 08:15

    500字告訴學會焊PCB板有什么

    的組件,以修復問題。這可以節省維修費用,延長設備的使用壽命。 2.制作原型和實驗電路:焊接技能使能夠制作原型電路板和進行各種實驗。可以設計和布局自己的電路,并將電子元件焊接到PCB
    的頭像 發表于 03-04 14:10 ?674次閱讀

    基于Python的地圖繪制教程

    本文介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1289次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    如何使用linux下gdb來調試python程序

    如何使用linux下gdb來調試python程序? 在Linux下,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯誤。在本文
    的頭像 發表于 01-31 10:41 ?2719次閱讀
    主站蜘蛛池模板: 成人影院午夜久久影院 | 雪恋电影完整版免费观看 | 免费国产网站 | 国产综合91 | 99影视久久电影网久久看影院 | 午夜免费体验30分 | 国产一卡 二卡三卡四卡无卡乱码视频 | 波多野结衣二区 | 18video性欧美19sex高清 | 帝王受PLAY龙椅高肉NP | 日日噜噜夜夜躁躁狠狠 | 99视频国产在线 | 国产AV亚洲精品久久久久软件 | 国产成人亚洲精品午夜国产馆 | 欧美最猛12teevideos | 亚洲性夜色噜噜噜网站2258KK | 成人无码精品1区2区3区免费看 | 国产乱妇乱子在线播视频播放网站 | 久久精品电影 | 国产精品无码人妻在线 | 午夜国产在线观看 | 国内极度色诱视频网站 | 国色天香视频在线社区 | 国产精品网红女主播久久久 | 99综合之综合久久伊人 | 亚洲 欧美 中文字幕 在线 | 北原夏美 快播 | 欧美男男网站免费观看videos | 国产精品在线手机视频 | 久久免费大片 | 浴室里强摁做开腿呻吟的漫画男男 | 亚洲国产日韩欧美高清片a 亚洲国产日韩a精品乱码 | 美女张开腿露出尿口扒开来摸动漫 | 午夜伦午夜伦锂电影 | 亚洲 欧美 综合 高清 在线 | jj插入bb| 精品视频久久久久 | 国产精品A久久久久久久久 国产精品A久久777777 | 男女疯狂一边摸一边做羞羞视频 | 六度影院最新 | 好大的太粗好深BL |