python實(shí)現(xiàn)多張圖片拼接成大圖
本文實(shí)例為大家分享了python實(shí)現(xiàn)多張圖片拼接成大圖的具體代碼,供大家參考,具體內(nèi)容如下
上次爬取了馬蜂窩的游記圖片,并解決了PIL模塊的導(dǎo)入問(wèn)題,現(xiàn)在直奔主題吧:
import PIL.Image as Image import os IMAGES_PATH = 'D:\Mafengwo\photo\五月坦桑的暖風(fēng),非洲原野的呼喚\\' # 圖片集地址 IMAGES_FORMAT = ['.jpg', '.JPG'] # 圖片格式 IMAGE_SIZE = 256 # 每張小圖片的大小 IMAGE_ROW = 5 # 圖片間隔,也就是合并成一張圖后,一共有幾行 IMAGE_COLUMN = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾列 IMAGE_SAVE_PATH = 'final.jpg' # 圖片轉(zhuǎn)換后的地址 # 獲取圖片集地址下的所有圖片名稱 image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if os.path.splitext(name)[1] == item] # 簡(jiǎn)單的對(duì)于參數(shù)的設(shè)定和實(shí)際圖片集的大小進(jìn)行數(shù)量判斷 if len(image_names) != IMAGE_ROW * IMAGE_COLUMN: raise ValueError("合成圖片的參數(shù)和要求的數(shù)量不能匹配!") # 定義圖像拼接函數(shù) def image_compose(): to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) #創(chuàng)建一個(gè)新圖 # 循環(huán)遍歷,把每張圖片按順序粘貼到對(duì)應(yīng)位置上 for y in range(1, IMAGE_ROW + 1): for x in range(1, IMAGE_COLUMN + 1): from_image = Image.open(IMAGES_PATH + image_names[IMAGE_COLUMN * (y - 1) + x - 1]).resize( (IMAGE_SIZE, IMAGE_SIZE),Image.ANTIALIAS) to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE)) return to_image.save(IMAGE_SAVE_PATH) # 保存新圖 image_compose() #調(diào)用函數(shù)
前邊設(shè)置了很多變量,都很直觀,然后時(shí)獲取圖片的名稱以及對(duì)需要拼接圖片的數(shù)量進(jìn)行檢查,比如你要拼接5*5的大圖,那就需要25張圖片,最后是我們的主函數(shù),依次遍歷,主要還是利用了Image模塊的強(qiáng)大功能,我們需要做的就是無(wú)縫對(duì)接。
效果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
利用QT寫(xiě)一個(gè)極簡(jiǎn)單的圖形化Python鬧鐘程序
這篇文章主要介紹了利用QT寫(xiě)一個(gè)極簡(jiǎn)單的圖形化Python鬧鐘程序,核心代碼只有25行,顯示屏幕提示而沒(méi)有鬧鈴聲音,需要的朋友可以參考下2015-04-04Python實(shí)現(xiàn)將橫表和縱表任意轉(zhuǎn)換的兩種方法
在日常做數(shù)據(jù)分析,接收到最多的表格是縱表,每個(gè)字段變量都有很長(zhǎng)數(shù)據(jù)的長(zhǎng)表,我們稱之為縱向數(shù)據(jù),但是,有時(shí)候,我們也會(huì)遇到橫表,對(duì)于橫向數(shù)據(jù),我們會(huì)數(shù)據(jù)轉(zhuǎn)化,將其轉(zhuǎn)化為縱向數(shù)據(jù),感興趣的同學(xué)跟著小編一起來(lái)學(xué)習(xí)吧2023-12-12Python模塊/包/庫(kù)安裝的六種方法及區(qū)別
這篇文章主要介紹了Python模塊/包/庫(kù)安裝六種方法,通過(guò)實(shí)例代碼給大家介紹了python中模塊、包、庫(kù)的區(qū)別和使用,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02python實(shí)現(xiàn)求最長(zhǎng)回文子串長(zhǎng)度
最長(zhǎng)回文子串問(wèn)題:給定一個(gè)字符串,求它的最長(zhǎng)回文子串長(zhǎng)度。如果一個(gè)字符串正著讀和反著讀是一樣的,那它就是回文串。今天我們就來(lái)探討下這個(gè)問(wèn)題2018-01-01Django零基礎(chǔ)入門(mén)之路由path和re_path詳解
這篇文章主要介紹了Django零基礎(chǔ)入門(mén)之路由path和re_path,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Qt5 實(shí)現(xiàn)主窗口狀態(tài)欄顯示時(shí)間
這篇文章主要介紹了Qt5 實(shí)現(xiàn)主窗口狀態(tài)欄顯示時(shí)間,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python 讀取有公式cell的結(jié)果內(nèi)容實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于Python 如何讀取有公式cell的結(jié)果內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-02-02