最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現心型照片墻效果

 更新時間:2021年09月05日 08:57:26   作者:30度道  
這篇文章主要為大家詳細介紹了python實現心型照片墻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

今天分享如何用python制作好看的心型照片墻,供大家參考,具體內容如下

效果

我們先來看下效果圖,了解我們接下來要做的事情,我的效果圖如下:

感覺如何?如果還滿意,看完幸苦點個贊,因為看完你也可以做出來!同時也是對我的一種反饋

思路

上代碼之前,我們先來理清下思路,只有過程理清楚了,才能得到自己的想要的結果

制作這個我覺得最難的地方就在于每個圖片的位置該怎么計算,才能湊成一個心型。但是沒關系,我們不去計算,畢竟我數學很差,我采用土辦法,直接把它位置寫死,雖然稍微有點麻煩,但是靈活~

大家都知道excel吧,里面的表格是由一個個單元格組合而成,那請你也把上面的圖想象成表格,是由很多單元格組成的,單元格的大小就是圖片的尺寸,并且去掉了邊框。那么制作這個心型,只要在單元格內添加單個圖片,然后湊成心的形狀就完成了。這就是整體的思路,接下來用代碼去實現這個思路

準備

我先說下制作過程要使用哪些python庫,工具總要先搞好,不然搞個der~

1、pillow:用來處理圖片的庫,屬于第三方庫,需要額外安裝 pip install pillow

2、os:用來獲取圖片,python自帶,不用額外安裝

3、math:用來計算圖片數量,python自帶,不用額外安裝

有上面三個庫就可以了,接下代碼走起

代碼

1、導庫

from PIL import Image
import os
import math

2、制作形狀

我們通過二維數組確定圖片的位置,每個元素相當于excel中的單元格:1代表空白,0代表圖片??吹接?組成的愛心了嘛?這里純手打(所以你可以自由改動,做出你想的形狀,這就是靈活的地方~)

因為我圖片有500張,所以我想做大一點,放更多的圖片,所以元素的個數會比較多,下面是21x21的大小。

記?。?的個數一定要比你的圖片數量少或剛好相等,否則就不是一個完整的愛心了!

map = [
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1],
    [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
    [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
    [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
    [1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
    [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
]

3、導入圖片

位置確定好了,開始獲取所有的圖片

# 這個是我圖片的所在路徑
img_dir = r"C:\Users\admin\Desktop\頭像"
# 獲取這個文件下的所有文件,因為沒有過濾其他類型文件,所以不要放非圖片文件
# 返回的是一個列表
imgs = os.listdir(img_dir)
# 設置圖片的尺寸,所有圖片尺寸要保持統(tǒng)一,要有組織有紀律
img_h = img_w = 192
# 計算行數,即子列表的個數
rows = len(map)
# 計算列數,即子列表中元素的個數
columns = len(map[0])

畫圖

接下來就是準備一個白色的背景,當作畫布。有了行數、列數和圖片的寬高,就可以計算出整個畫布的尺寸了

# 第一個參數照著寫
# 第二個參數需要傳入一個元組,元組的第一個參數是畫布的寬,第二個是高
# 第三個參數傳入的是畫布的顏色
# 使用Image.new()方法創(chuàng)建一個畫布
figure = Image.new("RGB", (img_w*columns, img_h*rows),"white")

到目前為止,圖片和畫布都已經準備好了,現在就是將圖片放置在畫布對應的位置上了,即數組中元素為0的位置

# 表示圖片的下標
count = 0
# 遍歷行
for i in range(len(map)):
    # 遍歷每行中的所有元素
    for j in range(len(map[i])):
        # 如果元素是1,就不管它
        if map[i][j] == 1:
            continue
        # 如果元素是非1,即0就放圖片上去
        else:
            # 做個異常處理,防止有些圖片打開失敗,導致程序中斷
            try:
                # 使用Image.open("圖片路徑")方法獲取圖片對象
                image = Image.open(os.path.join(img_dir, imgs[count]))
            except:
                continue
            # resize((新的寬,新的高))用來改變圖片的尺寸,接收一個元組
            image = image.resize((img_w, img_h))
            # 將修改尺寸后的圖片(image)粘貼(paste)到畫布(figure)上
            # 第一個參數 是圖片對象
            # 第二個參數是 圖片在畫布上的位置,相當于單元格的位置
            figure.paste(image, (img_w*j, img_h*i))
            # 使用完一張圖片就要記錄下來,并開始使用下一張圖片
            count += 1
        
# 當循環(huán)結束,即表示心型照片圖已經完成
# 將畫好的畫布顯示出來,給你看到
figure.show()
# 不滿意在調整二維數組中0的位置,滿意可以保存到本地,用來裝逼
# 需要告知程序圖片保存的路徑
figure.save('心型照片墻.png')

到此,心型照片墻就制作出來了,如果你有女朋友,可以用自己女朋友的照片,背景用紅色,然后發(fā)給你女朋友看,會不會更愛你我就不知道了,也可以寫個i love you~(圖如下)??上覜]有,好氣哦!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

  • Python 3.x 新特性及10大變化

    Python 3.x 新特性及10大變化

    這篇文章主要介紹了Python 3.x 新特性及10大變化,本文講解了Python之父Guido van Rossum談到了Python 3.0的構思,Python3版本的一些變化如print() and exec() 函數、整數及除法、input()代替raw_input()等,需要的朋友可以參考下
    2015-06-06
  • Python玩轉PDF的各種騷操作

    Python玩轉PDF的各種騷操作

    Portable Document Format(可移植文檔格式),或者PDF是一種文件格式,可以用于跨操作系統(tǒng)的呈現和文檔交換。這篇文章主要介紹了Python玩轉PDF的各種騷操作,需要的朋友可以參考下
    2019-05-05
  • TensorFlow人工智能學習數據填充復制實現示例

    TensorFlow人工智能學習數據填充復制實現示例

    這篇文章主要為大家介紹了TensorFlow人工智能學習如何進行數據填充復制的實現示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • 淺談python3.x pool.map()方法的實質

    淺談python3.x pool.map()方法的實質

    這篇文章主要介紹了python3.x pool.map方法的實質,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • Python使用Qt5實現水平導航欄的示例代碼

    Python使用Qt5實現水平導航欄的示例代碼

    本文主要介紹了Python使用Qt5實現水平導航欄的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • python解包用法詳解

    python解包用法詳解

    在本篇文章里小編給大家整理的是關于python解包用法詳解內容,有需要的朋友們可以跟著一起學習下。
    2021-02-02
  • python刪除過期文件的方法

    python刪除過期文件的方法

    這篇文章主要介紹了python刪除過期文件的方法,涉及Python日期與文件的相關操作技巧,需要的朋友可以參考下
    2015-05-05
  • python操作MySQL數據庫具體方法

    python操作MySQL數據庫具體方法

    堅持每天學一點,每天積累一點點,作為自己每天的業(yè)余收獲,這個文章是我在吃飯的期間寫的,利用自己零散的時間學了一下python操作MYSQL,所以整理一下。我采用的是MySQLdb操作的MYSQL數據庫。先來一個簡單的例子吧
    2013-10-10
  • Python實現針對中文排序的方法

    Python實現針對中文排序的方法

    這篇文章主要介紹了Python實現針對中文排序的方法,結合實例形式較為詳細的分析了Python針對中文進行排序操作出現的問題與相關處理技巧,需要的朋友可以參考下
    2017-05-05
  • 4種python判斷字符串是否包含關鍵字的方法

    4種python判斷字符串是否包含關鍵字的方法

    這篇文章主要為大家詳細介紹了4種python判斷字符串是否包含關鍵字的方法,文中的示例代碼講解詳細,有需要的小伙伴可以根據自己的需求進行選擇
    2025-04-04

最新評論

九台市| 雷州市| 鹤山市| 论坛| 临西县| 米易县| 西乌珠穆沁旗| 吉木乃县| 清苑县| 古丈县| 塔城市| 怀化市| 扎囊县| 邹平县| 醴陵市| 墨竹工卡县| 宿迁市| 潞西市| 五常市| 宁海县| 扬州市| 东丰县| 西乌珠穆沁旗| 宁明县| 襄樊市| 广汉市| 麻江县| 凌云县| 通许县| 锦州市| 皮山县| 涟源市| 河池市| 巴里| 灵丘县| 望城县| 福建省| 皮山县| 永修县| 广河县| 新野县|