亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

詳解基于python的多張不同寬高圖片拼接成大圖

發布時間:2020-10-19 00:06:07 來源:腳本之家 閱讀:299 作者:beyond_LH 欄目:開發技術

半年前寫過一篇將多張圖片拼接成大圖的博客,是講的把所有圖片先轉換為256×256的圖片后再進行拼接,今天看到一個朋友的評論說如何拼接非正方形圖片,如47×57,之前有個朋友也問過這個,我當時理解錯了,以為是要把不同尺寸的照片如32×45、56×75等拼接成大圖,當時還納悶,那不是很難看嗎,還得填充非圖片元素,emmm,只怪當年太天真。。

于是乎搞了下非方形圖片的拼接,上代碼:

#!/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() # 調用函數

對比之前的博客,沒有改動太多,只是太久沒看了,又梳理了一遍,把之前的方形圖片的邊長IMAGE_SIZE拆分成了矩形的長和寬,當然習慣稱之為高和寬

這里需要注意的就是下面兩處用到IMAGE_SIZE_W和IMAGE_SIZE_H的地方,注釋已經說清楚了,我們先是把需要拼接的各種尺寸的圖片統一塑形為47×57大小的圖片,然后依次粘貼到我們創建的新圖中,這里的paste方法中位置指的是圖片的左上角,從該處粘貼一張IMAGE_SIZE_W×IMAGE_SIZE_H大小的圖片,他這個順序就是從第一行開始依次粘貼,只不過位置是從0開始的,可以理解成一次粘貼到(0,0),(0,1),(0,2)…………(1,0),(1,1)…………位置上,區別的就是我們這里粘貼的不是一個點而是一張有寬高的圖片,所以第一張圖片粘貼位置是(0,0),第二張是(IMAGE_SIZE_W,0),第三張是(IMAGE_SIZE_W*2,0)就這么先搞定第一行再走第二行,一直這么下去。。

還是原來的圖片,看下不同的效果:

詳解基于python的多張不同寬高圖片拼接成大圖

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

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

AI

曲水县| 凉城县| 元谋县| 将乐县| 玉田县| 彩票| 葫芦岛市| 荆门市| 德昌县| 建宁县| 乌拉特后旗| 铁岭县| 太仆寺旗| 囊谦县| 蕲春县| 平山县| 皮山县| 彭州市| 伊宁县| 惠安县| 安龙县| 二连浩特市| 珠海市| 息烽县| 张家川| 泸溪县| 类乌齐县| 富蕴县| 玛纳斯县| 志丹县| 延长县| 公主岭市| 南京市| 讷河市| 垣曲县| 闻喜县| 措勤县| 修文县| 白山市| 商洛市| 大丰市|