Python | 一鍵生成九宮格圖片


一鍵生成九宮格圖片

首先我們准備幾張圖片:

將代碼文件放在放置圖片的地方,用軟件打開:

點擊運行,在當前目錄下會生成一個文件夾:

打開新生成的文件夾:

打開對應圖片的名稱文件夾:

如果不想圖片被分成9張,可以注釋掉行尾有標記== # !!!==的代碼即可:

以下是全部代碼

import os
from PIL import Image


def wh_size(w, h):
    while w % 3 != 0:
        w += 1
    while h % 3 != 0:
        h += 1
    return w, h


def jgg_img(image, name):
    names = path + '\\Nine_GG' + '\\' + name  # 圖片名稱
    im = Image.open(image)  # 打開圖片
    w, h = im.size  # 獲取圖片寬高
    width, height = wh_size(w, h)
    im = im.resize((width, height))  # 對圖片寬高進行校准
    tr = int(width/100*1.3)  # 根據圖片寬設置條紋寬度
    img = Image.new('RGB', (width + 2 * tr, height + 2 * tr), color='white')  # 新建圖片底圖
    zi = os.path.splitext(names)[0]
    if not os.path.exists(zi):  # 創建子文件夾 !!!1
        os.mkdir(zi)  # !!!2
    num = 0  # !!!3
    imgtype = os.path.splitext(name)[1]  # !!!4
    for i in range(3):
        for j in range(3):
            m = im.crop((int(width / 3) * j, int(height / 3) * i, int(width / 3) * (j + 1), int(height / 3) * (i + 1)))
            img.paste(m, (int(width / 3) * j+j*tr, int(height / 3) * i+i*tr))
            num += 1  # !!!5
            m.save(zi+'//'+str(num)+imgtype)  # !!!6
    img = img.resize((w, h))  # 調整圖片大小
    img.save(names)  # 保存圖片


if __name__ == '__main__':
    path = os.getcwd()
    print("請確保當前路徑下,有相應類型的圖片文件存在!")
    if not os.path.exists(path + '\\Nine_GG'):  # 判斷文件夾是否創建
        os.mkdir(path + '\\Nine_GG')
    for i in os.listdir():  # 循環遍歷當前工作路徑下的所有文件
        if os.path.splitext(path + '\\' + i)[1] in ['.jpg', '.png', '.jpeg']:
            jgg_img(path + '\\' + i, i)

就到這里啦byebye O(∩_∩)O


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM