半年前寫過一篇將多張圖片拼接成大圖的博客,是講的把所有圖片先轉換為256×256的圖片后再進行拼接,今天看到一個朋友的評論說如何拼接非正方形圖片,如47×57,之前有個朋友也問過這個,我當時理解錯了,以為是要把不同尺寸的照片如32×45、56×75等拼接成大圖,當時還納悶,那不是很難看嗎,還得填充非圖片元素,emmm,只怪當年太天真。。
創新互聯擁有網站維護技術和項目管理團隊,建立的售前、實施和售后服務體系,為客戶提供定制化的成都做網站、網站設計、外貿營銷網站建設、網站維護、成都移動服務器托管解決方案。為客戶網站安全和日常運維提供整體管家式外包優質服務。我們的網站維護服務覆蓋集團企業、上市公司、外企網站、成都商城網站開發、政府網站等各類型客戶群體,為全球1000多家企業提供全方位網站維護、服務器維護解決方案。于是乎搞了下非方形圖片的拼接,上代碼:
#!/usr/bin/env python # -*- coding:utf-8 -*- import PIL.Image as Image import os IMAGES_PATH = 'D:\Mafengwo\photo\五月坦桑的暖風,非洲原野的呼喚\\' # 圖片集地址 IMAGES_FORMAT = ['.jpg', '.JPG'] # 圖片格式 IMAGE_SIZE_W = 47 # 每張小圖片的寬 IMAGE_SIZE_H = 57 # 每張小圖片的高 IMAGE_ROW = 5 # 圖片間隔,也就是合并成一張圖后,一共有幾行 IMAGE_COLUMN = 4 # 圖片間隔,也就是合并成一張圖后,一共有幾列 IMAGE_SAVE_PATH = 'final.jpg' # 圖片轉換后的地址 # 獲取圖片集地址下的所有圖片名稱 image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if os.path.splitext(name)[1] == item] # 簡單的對于參數的設定和實際圖片集的大小進行數量判斷 if len(image_names) != IMAGE_ROW * IMAGE_COLUMN: raise ValueError("合成圖片的參數和要求的數量不能匹配!") # 定義圖像拼接函數 def image_compose(): to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE_W, IMAGE_ROW * IMAGE_SIZE_H)) # 創建一個新圖 # 循環遍歷,把每張圖片按順序粘貼到對應位置上 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_W, IMAGE_SIZE_H), Image.ANTIALIAS)#重塑(統一)照片的大小 to_image.paste(from_image, ((x - 1) * IMAGE_SIZE_W, (y - 1) * IMAGE_SIZE_H)) # im.paste(image, position)---粘貼image到im的position(左上角)位置。 return to_image.save(IMAGE_SAVE_PATH) # 保存新圖 image_compose() # 調用函數
當前標題:詳解基于python的多張不同寬高圖片拼接成大圖-創新互聯
轉載注明:http://vcdvsql.cn/article4/ggiie.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、搜索引擎優化、動態網站、商城網站、電子商務、移動網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯