溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現(xiàn)多張圖片拼接成大圖

發(fā)布時間:2021-04-09 11:22:12 來源:億速云 閱讀:589 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下python怎么實現(xiàn)多張圖片拼接成大圖,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

上次爬取了馬蜂窩的游記圖片,并解決了PIL模塊的導入問題,現(xiàn)在直奔主題吧:

import PIL.Image as Image
import os
 
IMAGES_PATH = 'D:\Mafengwo\photo\五月坦桑的暖風,非洲原野的呼喚\\' # 圖片集地址
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ù)量判斷
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)建一個新圖
 # 循環(huán)遍歷,把每張圖片按順序粘貼到對應位置上
 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ù)量進行檢查,比如你要拼接5*5的大圖,那就需要25張圖片,最后是我們的主函數(shù),依次遍歷,主要還是利用了Image模塊的強大功能,我們需要做的就是無縫對接。

效果如下:

python怎么實現(xiàn)多張圖片拼接成大圖

看完了這篇文章,相信你對“python怎么實現(xiàn)多張圖片拼接成大圖”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI