python實(shí)現(xiàn)多張圖片拼接成大圖
本文實(shí)例為大家分享了python實(shí)現(xiàn)多張圖片拼接成大圖的具體代碼,供大家參考,具體內(nèi)容如下
上次爬取了馬蜂窩的游記圖片,并解決了PIL模塊的導(dǎo)入問題,現(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]
# 簡單的對于參數(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)遍歷,把每張圖片按順序粘貼到對應(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í)獲取圖片的名稱以及對需要拼接圖片的數(shù)量進(jìn)行檢查,比如你要拼接5*5的大圖,那就需要25張圖片,最后是我們的主函數(shù),依次遍歷,主要還是利用了Image模塊的強(qiáng)大功能,我們需要做的就是無縫對接。
效果如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python多線程性能測試之快速mock數(shù)據(jù)
這篇文章主要為大家介紹了python多線程性能測試之快速mock數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python實(shí)踐項(xiàng)目之監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)詳情
介紹一個(gè)利用Python監(jiān)控當(dāng)前聯(lián)網(wǎng)狀態(tài)情況的python代碼,它可以清楚地知道,你的電腦網(wǎng)絡(luò)是否是鏈接成功或失敗,下面小編帶大家來一起學(xué)習(xí)它2019-05-05
Anaconda中Python虛擬環(huán)境的創(chuàng)建使用與刪除方法詳解
這篇文章主要為大家介紹了在Anaconda環(huán)境下,創(chuàng)建、使用與刪除Python虛擬環(huán)境的方法,具有一定的借鑒價(jià)值,需要的小伙伴可以跟隨小編一起了解一下2023-08-08
使用BeautifulSoup4解析XML的方法小結(jié)
這篇文章主要介紹了使用BeautifulSoup4解析XML的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
python繪制帶有誤差棒條形圖的實(shí)現(xiàn)
本文主要介紹了python繪制帶有誤差棒條形圖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
一文探索CPython的變量實(shí)現(xiàn)機(jī)制
在Python中,變量的使用看起來非常簡單,然而,這種簡單的賦值操作背后,CPython其實(shí)做了很多復(fù)雜的工作,下面我們就來一起探索一下吧2025-02-02

