python怎么實現(xiàn)多張圖片拼接成大圖-創(chuàng)新互聯(lián)

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

創(chuàng)新互聯(lián)公司專注于綠園企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購物商城網(wǎng)站建設(shè)。綠園網(wǎng)站建設(shè)公司,為綠園等地區(qū)提供建站服務(wù)。全流程按需定制制作,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

上次爬取了馬蜂窩的游記圖片,并解決了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è)定和實際圖片集的大小進(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)建一個新圖
 # 循環(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ù)量進(jìn)行檢查,比如你要拼接5*5的大圖,那就需要25張圖片,最后是我們的主函數(shù),依次遍歷,主要還是利用了Image模塊的強(qiáng)大功能,我們需要做的就是無縫對接。

效果如下:

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

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

當(dāng)前名稱:python怎么實現(xiàn)多張圖片拼接成大圖-創(chuàng)新互聯(lián)
標(biāo)題來源:http://muchs.cn/article0/dhioio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站營銷、外貿(mào)建站網(wǎng)站導(dǎo)航、Google、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)