Python切圖九宮格的實(shí)現(xiàn)方法
本文介紹了Python切圖九宮格的實(shí)現(xiàn)方法,分享給大家,具體如下

# -*- coding: utf-8 -*-
'''
將一張圖片填充為正方形后切為9張圖
'''
from PIL import Image
import sys
#將圖片填充為正方形
def fill_image(image):
width, height = image.size
#選取長(zhǎng)和寬中較大值作為新圖片的
new_image_length = width if width > height else height
#生成新圖片[白底]
new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')
#將之前的圖粘貼在新圖上,居中
if width > height:#原圖寬大于高,則填充圖片的豎直維度
#(x,y)二元組表示粘貼上圖相對(duì)下圖的起始位置
new_image.paste(image, (0, int((new_image_length - height) / 2)))
else:
new_image.paste(image, (int((new_image_length - width) / 2),0))
return new_image
#切圖
def cut_image(image):
width, height = image.size
item_width = int(width / 3)
box_list = []
# (left, upper, right, lower)
for i in range(0,3):#兩重循環(huán),生成9張圖片基于原圖的位置
for j in range(0,3):
#print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
box_list.append(box)
image_list = [image.crop(box) for box in box_list]
return image_list
#保存
def save_images(image_list):
index = 1
for image in image_list:
image.save('./python'+str(index) + '.png', 'PNG')
index += 1
if __name__ == '__main__':
file_path = "python.jpeg"
image = Image.open(file_path)
#image.show()
image = fill_image(image)
image_list = cut_image(image)
save_images(image_list)



以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python3.6通過(guò)自帶的urllib通過(guò)get或post方法請(qǐng)求url的實(shí)例
下面小編就為大家分享一篇Python3.6通過(guò)自帶的urllib通過(guò)get或post方法請(qǐng)求url的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python中g(shù)lob.glob()函數(shù)的使用
glob 模塊用于查找規(guī)定路徑下的文件路徑名,本文主要介紹了Python中g(shù)lob.glob()函數(shù)的使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Matplotlib 生成不同大小的subplots實(shí)例
今天小編就為大家分享一篇Matplotlib 生成不同大小的subplots實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python3+selenium4實(shí)現(xiàn)切換窗口與iframe的方法
在自動(dòng)化測(cè)試過(guò)程中,有時(shí)后會(huì)遇到元素定位方式?jīng)]有問(wèn)題,但是依舊拋出無(wú)法找到元素的異常的問(wèn)題,有可能是由于當(dāng)前焦點(diǎn)不在指定頁(yè)面或iframe導(dǎo)致的,本文就來(lái)說(shuō)明 一下2021-05-05
python+pillow繪制矩陣蓋爾圓簡(jiǎn)單實(shí)例
這篇文章主要介紹了Python+pillow繪制矩陣蓋爾圓簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
探索Python函數(shù)調(diào)用為何加速代碼執(zhí)行原理
Python 作為一種解釋型語(yǔ)言,其執(zhí)行速度相對(duì)于編譯型語(yǔ)言可能會(huì)較慢,然而,在Python中,通常觀察到代碼在函數(shù)中運(yùn)行得更快的現(xiàn)象,這個(gè)現(xiàn)象主要是由于函數(shù)調(diào)用的內(nèi)部?jī)?yōu)化和解釋器的工作方式導(dǎo)致的,本文將深入探討這個(gè)現(xiàn)象,并通過(guò)詳細(xì)的示例代碼進(jìn)行解釋2024-01-01
詳談Python基礎(chǔ)之內(nèi)置函數(shù)和遞歸
下面小編就為大家?guī)?lái)一篇Python基礎(chǔ)之內(nèi)置函數(shù)和遞歸。小編覺(jué)得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
django配置使用asgi的實(shí)現(xiàn)步驟
本文主要介紹了django配置使用asgi的實(shí)現(xiàn)步驟,支持 ASGI 協(xié)議能處理傳統(tǒng)HTTP請(qǐng)求,也能支持實(shí)時(shí)WebSocket通信,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03

