最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)圖片九宮格分割

 更新時間:2021年03月07日 08:35:38   作者:mico_cmm  
一張圖片分成的九宮圖,大家知道是怎么做到嗎?這篇文章就為大家詳細(xì)介紹了python實現(xiàn)圖片九宮格分割功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下

大家都知道在微信朋友圈或者微博以及QQ動態(tài)中,有很多“強(qiáng)迫癥患者”發(fā)圖片都愛發(fā)9張,而有些圖是一張圖片分成的九宮圖,對于這種操作,大家知道是怎么做到的嗎?

本文就是用Python做的一個九宮格圖片生成器,是一個打包好的exe文件,用戶無需部署安裝Python的開發(fā)環(huán)境,在本地就可以運行此程序,以此快速生成九宮格圖片。

下面是程序的所有代碼,這是一個Python GUI程序,代碼不多,也很容易理解:

# -*- coding: UTF-8 -*-
# 將一張圖片分成九張,九宮格
import tkinter as tk
from PIL import Image 
import sys 
 
 
#先將 input image 填充為正方形 
def fill_image(image): 
 width, height = image.size 
 #選取長和寬中較大值作為新圖片的 
 new_image_length = width if width > height else height 
 #生成新圖片[白底] 
 new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white') #注意這個函數(shù)! 
 #將之前的圖粘貼在新圖上,居中 
 if width > height:#原圖寬大于高,則填充圖片的豎直維度 #(x,y)二元組表示粘貼上圖相對下圖的起始位置,是個坐標(biāo)點。 
 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) #因為朋友圈一行放3張圖。
 box_list = []
 # (left, upper, right, lower)
 for i in range(0,3):
 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(str(index) + '.png', 'PNG') 
 index += 1 
 
 
# 點擊按鈕,實現(xiàn)圖片分割
def cTofClicked():
 file_path=str(entryCd.get()) # 獲取要進(jìn)行分割的圖片路徑
 image = Image.open(file_path) 
 #image.show() 
 image = fill_image(image) 
 image_list = cut_image(image) 
 save_images(image_list) 
 labelcTof.config(text="九宮格圖片已生,請在程序所在目錄查看!")
 
# 窗體
top=tk.Tk()
top.title('九宮格圖片生成器')
labelcTof=tk.Label(top,text="請輸入要進(jìn)行轉(zhuǎn)換的圖片路徑:",height=4,\
 width=40,fg="blue") 
labelcTof.pack()
entryCd=tk.Entry(top,text='0') # 文本框,獲取圖片路徑
entryCd.pack()
label_tip=tk.Label(top,text="請檢查圖片路徑是否輸入正確!",height=2,\
 width=40,fg="gray") 
label_tip.pack()
btnCal=tk.Button(top,text="點擊生成九宮格圖片",fg="red",bg="yellow",command=cTofClicked) # 點擊回調(diào)函數(shù)
btnCal.pack()
 
top.mainloop() # 執(zhí)行主循環(huán)

打包好的exe程序下載地址:python實現(xiàn)圖片九宮格分割

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)批量更換指定目錄下文件擴(kuò)展名的方法

    Python實現(xiàn)批量更換指定目錄下文件擴(kuò)展名的方法

    這篇文章主要介紹了Python實現(xiàn)批量更換指定目錄下文件擴(kuò)展名的方法,結(jié)合完整實例分析了Python批量修改文件擴(kuò)展名的技巧,并對比分析了shell命令及scandir的兼容性代碼,需要的朋友可以參考下
    2016-09-09
  • Python3 處理JSON的實例詳解

    Python3 處理JSON的實例詳解

    這篇文章主要介紹了Python3 處理JSON的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • Python制作一個多功能音樂播放器

    Python制作一個多功能音樂播放器

    本文主要介紹了Python制作一個多功能音樂播放器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Python即時網(wǎng)絡(luò)爬蟲項目啟動說明詳解

    Python即時網(wǎng)絡(luò)爬蟲項目啟動說明詳解

    這篇文章主要為大家詳細(xì)介紹了Python即時網(wǎng)絡(luò)爬蟲項目啟動說明,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python新手在作用域方面經(jīng)常容易碰到的問題

    Python新手在作用域方面經(jīng)常容易碰到的問題

    這篇文章主要介紹了Python新手在作用域方面經(jīng)常容易碰到的問題,全局變量和局部變量方面的知識在Python學(xué)習(xí)當(dāng)中是基礎(chǔ)中的基礎(chǔ),需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)大樂透號碼隨機(jī)生成

    Python實現(xiàn)大樂透號碼隨機(jī)生成

    全國有很多彩民,其中購買最多的彩種分別是體彩大樂透和福彩雙色球。本篇文章將介紹Python實現(xiàn)彩票自由的全流程:隨機(jī)選取號碼+查看是否中獎,需要的可以參考一下
    2022-05-05
  • 使用Python字符串訪問與修改局部變量的實現(xiàn)代碼

    使用Python字符串訪問與修改局部變量的實現(xiàn)代碼

    這篇文章主要介紹了使用Python字符串訪問與修改局部變量,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用

    詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用

    高階函數(shù)就是能夠把函數(shù)當(dāng)成參數(shù)傳遞的函數(shù)就是高階函數(shù),換句話說如果一個函數(shù)的參數(shù)是函數(shù),那么這個函數(shù)就是一個高階函數(shù)。本文為大家詳細(xì)講解了Python中常用的四個高階函數(shù),感興趣的可以了解一下
    2022-04-04
  • Python 中如何使用 setLevel() 設(shè)置日志級別

    Python 中如何使用 setLevel() 設(shè)置日志級別

    這篇文章主要介紹了在 Python 中使用setLevel() 設(shè)置日志級別,Python 提供了一個單獨的日志記錄模塊作為其標(biāo)準(zhǔn)庫的一部分,以簡化日志記錄,本文將討論日志記錄 setLevel 及其在 Python 中的工作方式,需要的朋友可以參考下
    2023-07-07
  • Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題

    Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題

    這篇文章主要介紹了Celery批量異步調(diào)用任務(wù)一直等待結(jié)果問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論

旌德县| 麻城市| 岳普湖县| 嘉黎县| 大丰市| 安义县| 综艺| 故城县| 上杭县| 盐山县| 临漳县| 宁明县| 团风县| 徐州市| 城口县| 九龙城区| 罗定市| 铁力市| 牙克石市| 民乐县| 扶余县| 自治县| 荔浦县| 西安市| 泸定县| 许昌县| 西丰县| 井研县| 定州市| 民丰县| 建瓯市| 丹凤县| 岳池县| 娄烦县| 荆门市| 浑源县| 巢湖市| 韶关市| 河西区| 广河县| 彭泽县|