python九宮格圖片的原理
原理
1、用Python製作的九宮格影像生成器包裝exe檔案,使用者無需部署安裝Python的開發環境,即可在當地執行該程式,快速生成九宮格影像。
2、用PIL庫不斷畫小區域,切下來儲存成新的小圖片。
例項
假設每一個格子的寬和高分別是w、h,那麼第row行(從0開始計數),第col列(從0開始計數)的格子左上角座標和右下角座標分別是(col * w, row * h),(col * w + w, r * h + h)。
# -*- 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') #注意這個函式! #將之前的圖貼上在新圖上,居中 if width > height:#原圖寬大於高,則填充圖片的豎直維度 #(x,y)二元組表示貼上上圖相對下圖的起始位置,是個座標點。 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 # 點選按鈕,實現圖片分割 def cTofClicked(): file_path=str(entryCd.get()) # 獲取要進行分割的圖片路徑 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="請輸入要進行轉換的圖片路徑:",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) # 點選回撥函式 btnCal.pack() top.mainloop() # 執行主迴圈
以上就是python九宮格圖片的原理,希望對大家有所幫助。更多Python學習指路:
本文教程操作環境:windows7系統、Python 3.9.1,DELL G3電腦。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4692/viewspace-2829736/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- iOS 中使用 FlexBox 佈局實現圖片九宮格iOSFlex
- 小程式—九宮格心形拼圖
- 短視訊平臺原始碼,動態上傳的圖片以九宮格形式展示原始碼
- 九宮格切圖-創意分享新風尚
- 手機的九宮格圖案解鎖總共能繪出多少種圖案?
- 抽獎動畫 - 九宮格抽獎動畫
- Flutter 仿微信/微博九宮格Flutter
- 九宮格抽獎–手擼程式碼
- 使用 yogaKit 實現一個九宮格
- SVG九宮格密碼效果程式碼SVG密碼
- iOS 九宮格鍵盤的UIKeyboardTypeNumbersAndPunctuation預設型別iOSUI型別
- iOS swift 最好用的 手勢密碼 九宮格iOSSwift密碼
- js版九宮格拼圖與啟發式搜尋(A*演算法)JS演算法
- L1-104 九宮格 分數 20
- 破解九宮格密碼,一清即可密碼
- Python 帶你一鍵生成朋友圈超火的九宮格短視訊Python
- 【微信小程式雲開發】1分鐘學會實現上傳、下載、預覽、刪除圖片,並且以九宮格展示圖片微信小程式
- 用jQuery編寫簡單九宮格抽獎jQuery
- 部落格圖片
- 基於Vue實現拖拽升級(九宮格拖拽)Vue
- 基於螢石雲實現的九宮格影片監控效果
- 自定義部落格園部落格的背景圖片
- PHP+Ajax微信手機端九宮格抽獎例項PHP
- SMELab:九宮格和全鍵盤究竟哪種更科學?
- Flutter基礎(九)資源和圖片Flutter
- Flutter 基礎(九)資源和圖片Flutter
- PNG圖片原理二三事
- 圖片懶載入原理
- glide圖片載入原理IDE
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- 影片直播網站原始碼,uni-app左右平分九宮格樣式網站原始碼APP
- 遞迴、迭代和動態規劃:以九宮格鍵盤為例遞迴動態規劃
- Python 下載圖片Python
- Python批次裁剪圖片Python
- 【python】圖片插入文字Python
- python批量ppt轉圖片,pdf轉圖片,word轉圖片指令碼Python指令碼
- 【Javascript + Vue】實現對任意迷宮圖片的自動尋路JavaScriptVue
- 如何去除CSDN部落格圖片水印