国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

??Python實(shí)用工具之制作證件照(有界面、附源碼、贊關(guān)藏)??

Doyle / 3394人閱讀

鎮(zhèn)樓圖

一點(diǎn)想說的

想當(dāng)年我不會Python的時(shí)候,做個(gè)證件照還要下 XX證件照 軟件,每次5元,感覺血虧,現(xiàn)在長本事了,自己做證件照,XX證件照 拜拜了您嘞~



必要配置

確保下面的庫都已安裝。
主要涉及到的庫:
tkinter:實(shí)現(xiàn) GUI 編程(文本框、按鈕、標(biāo)簽等組件實(shí)現(xiàn) GUI 開發(fā))。
PIL:第三方圖像處理庫,十分強(qiáng)大,由于使用人數(shù)龐大再加上確實(shí)牛,幾乎已經(jīng)被認(rèn)為是 Python 官方圖像處理庫。
pathlib:面向?qū)ο蟮木幊谭绞絹肀硎疚募到y(tǒng)路徑。
ttkthemestkinter 主題包,讓你的組件外觀更加騷。
Pyinstaller:是一個(gè)非常簡單的打包 .py 文件的庫。
removebg:看名字就知道,專門摳圖的庫。

removebg配置

安裝對應(yīng)的 Python 庫

pip install -i https://pypi.douban.com/simple removebg

獲取API Key

進(jìn)入 Removebg 官網(wǎng),完成賬號注冊。

填寫完注冊信息后,會發(fā)送驗(yàn)證郵件到你的郵箱,點(diǎn)擊進(jìn)入后會進(jìn)入如下界面。

點(diǎn)擊 Remove image background

再點(diǎn)擊紅圈中的 Tool & API

點(diǎn)擊 Get API Key,

點(diǎn)擊 Show 即可查看 API Key 了,最好記下來哦,之后代碼中會用到。



無界面版

修改圖片背景色

使用 RemoveBg 時(shí)必須指定 api-keyerror.log(保存報(bào)錯(cuò)信息的文件),去掉背景之后會在原圖片同級文件夾內(nèi)生成一張 xxx_no_bg.png 的圖片,再創(chuàng)建一個(gè)指定顏色的背景板,將摳出來的圖粘貼到背景板上。

# 修改照片背景色def replace_bg(read_path, save_path, api_key, bg_color="blue"):    # 在程序當(dāng)前目錄創(chuàng)建一個(gè)error.log文件來保存錯(cuò)誤信息(必要參數(shù))    Path("error.log").touch()    rmbg = RemoveBg(api_key, "error.log")    # 執(zhí)行后會在 read_path 同級文件夾內(nèi)生成一張 xxx_no_bg.png 的圖片    rmbg.remove_background_from_img_file(read_path)    img_no_bg = Image.open(read_path + "_no_bg.png")    # 創(chuàng)建一個(gè)新的圖像,RGB代表真色彩,3通道,    # color可以為顏色英文名 red 或是 十六進(jìn)制顏色代碼 #00FF00    new_img = Image.new("RGB", img_no_bg.size, color=bg_color)    # 將沒有背景的圖像粘貼到含背景色的圖像上    new_img.paste(img_no_bg, (0, 0, *img_no_bg.size), img_no_bg)    new_img.save(save_path)

修改圖片大小

讀取圖片,直接使用 resize 修改圖片尺寸,Image.ANTIALIAS 設(shè)置為高質(zhì)量。

# 修改照片尺寸295x413(標(biāo)準(zhǔn)一寸)def change_size(read_path, save_path, width=295, height=413):    image = Image.open(read_path)    resized_image = image.resize((int(width), int(height)), Image.ANTIALIAS)    resized_image.save(save_path)


升級版

設(shè)置窗口主題與標(biāo)題

這里使用的主題時(shí) adapta,官方推薦,樣式很好看。

window = ThemedTk(theme="adapta", fonts=True, themebg=True)window.title("證件照生成器")

添加選擇圖片路徑組件

選擇待修改圖片的路徑。

def selectFilePath():    global img_path    # 選擇文件path接收文件地址    img_path = Path(filedialog.askopenfilename(title="選擇原圖片"))    x, y = Image.open(img_path).size    entry4.insert(0, str(x) + "x" + str(y))    path1.set(img_path)    path1 = tk.StringVar()entry1 = ttk.Entry(window, textvariable=path1, width=30)entry1.insert(0, "格式要求png")button1 = ttk.Button(window,width=10, text = "圖片路徑", command = selectFilePath)

添加選擇保存路徑組件

選擇修改后圖片的保存路徑,該路徑為文件夾。

def selectDirPath():    global dir_path    # 選擇文件path接收文件地址    dir_path = Path(filedialog.askdirectory(title="選擇圖片保存路徑"))    path2.set(dir_path)    path2 = tk.StringVar()entry2 = ttk.Entry(window, textvariable=path2, width=30)button2 = ttk.Button(window,width=10, text = "保存路徑", command = selectDirPath)

添加選擇背景顏色組件

這里使用tkintercolorchooser 來當(dāng)作顏色板,不得不說,實(shí)在是太好用了 。

def ChooseColor():    global bg_color    # 返回兩種格式的顏色代碼,這里只保存十六進(jìn)制的    _, bg_color = colorchooser.askcolor(title="顏色選擇器")    path3.set(bg_color)    path3 = tk.StringVar()entry3 = ttk.Entry(window, textvariable=path3, width=30)button3 = ttk.Button(window, text="背景顏色", command=ChooseColor)


添加填寫圖片尺寸組件

如果要修改圖片的話,就填寫這一欄,默認(rèn)為原圖尺寸,這里如果想要標(biāo)準(zhǔn)尺寸的話,建議先自己百度一下,如標(biāo)準(zhǔn)一寸就是295x413(標(biāo)準(zhǔn)一寸)。

# 設(shè)置圖片大小,默認(rèn)原圖大小,格式如295x413(標(biāo)準(zhǔn)一寸)label = ttk.Label(window, text="默認(rèn)原圖大小,若要修改請按[]內(nèi)/                    格式,如 [295x413] (標(biāo)準(zhǔn)一寸照)", wraplength=200, style="two.TLabel")entry4 = ttk.Entry(window, width=30)label1 = ttk.Label(window, text="圖片尺寸", style="three.TLabel")

添加填寫API-KEY組件

將輸入框設(shè)置顯示值為 “*”,可以達(dá)到隱藏顯示值的效果。這里就要填寫上面獲取的 api-key 了。

# 填寫api-keyentry5 = ttk.Entry(window, width=30, show="*")label2 = ttk.Label(window, text="api-key", style="three.TLabel")

添加控制按鈕

  • 修改背景按鈕:只修改原圖的背景圖,需要指定原圖路徑,保存路徑,背景顏色等。
  • 修改尺寸按鈕:只修改原圖的尺寸,需要指定原圖路徑,保存路徑,圖片尺寸等。
  • 同時(shí)修改按鈕:同時(shí)修改原圖的尺寸與背景,需要指定原圖路徑,保存路徑,圖片顏色(可選),圖片尺寸(可選),如果未選擇顏色,尺寸則默認(rèn)藍(lán)底,圖片尺寸為295x413(標(biāo)準(zhǔn)一寸)。
# 添加“同時(shí)修改”按鈕button4 = ttk.Button(window, text = "同時(shí)修改", command=change_bg_size)# 添加“修改背景”按鈕button5 = ttk.Button(window, text = "修改背景", command=replace_bg)# 添加“修改尺寸”按鈕button6 = ttk.Button(window, text = "修改尺寸", command=change_size)

添加輸出框顯示

顯示運(yùn)行結(jié)果信息。

# 添加輸出框顯示tree = ttk.Treeview(height=1, show=("tree", "headings"))

設(shè)置組件位置

這里使用 grid() 來設(shè)置位置,也可以用 pick() ,但個(gè)人更傾向于前者。

main_label.grid(row = 0, column = 0, pady=5)entry1.grid(row = 1, column = 0, pady=5)button1.grid(row = 1, column = 1, padx=20)entry2.grid(row = 2, column = 0, pady=5)button2.grid(row = 2, column = 1, padx=20)entry3.grid(row = 3, column = 0, pady=5)button3.grid(row = 3, column = 1, padx=20)label.grid(row = 4, column = 0, pady=5)entry4.grid(row = 5, column = 0, pady=5)label1.grid(row = 5, column = 1, pady=5)entry5.grid(row = 6, column = 0, pady=5)label2.grid(row = 6, column = 1, pady=5)button4.grid(row = 7, column = 1, padx=5)button5.grid(row = 7, column = 0, padx=5)button6.grid(row = 8, column = 0, padx=5)tree.grid(row=9, column=0, pady=5)

設(shè)置組件樣式

再原組件的基礎(chǔ)上修改自己喜歡的樣式。

label_style = ttk.Style()label_style.configure("one.TLabel", font=("微軟雅黑", 16, "bold"), foreground="red", background="yellow")label_style1 = ttk.Style()label_style1.configure("two.TLabel", font=("微軟雅黑", 9), foreground="blue", background="yellow")    label_style2 = ttk.Style()label_style2.configure("three.TLabel", font=("微軟雅黑", 10), foreground="blue", background="yellow")



源碼打包

雖然之前的文章中已經(jīng)介紹過很多次打包的方法,但為了新讀者,還是再來簡單講解一下。
首先要確保已經(jīng)安裝 pyinstaller,沒有安裝的可以先安裝一下。

pip install -i https://pypi.douban.com/simple pyinstaller 

pyinstaller 使用時(shí)的常用參數(shù)含義:

-F:打包單個(gè)文件,產(chǎn)生一個(gè)文件用于部署(默認(rèn)),如果代碼都寫在一個(gè) .py 文件時(shí)使用,項(xiàng)目有多個(gè)文件時(shí)不要使用

pyinstaller -F xxx.py

-D:打包多個(gè)文件,產(chǎn)生一個(gè)目錄用于部署(默認(rèn)),用于框架編寫的代碼打包

pyinstaller -D xxx.py(項(xiàng)目入口文件)

–key=keys:使用 keys 進(jìn)行加密打包

pyinstaller --key=123456 -F xxx.py

-d:產(chǎn)生 debug 版本的可執(zhí)行文件

-p:用來添加程序所用到的包的所在位置,設(shè)置導(dǎo)入路徑,可以用 ; ( Linux 使用 :)分割來指定多個(gè)目錄。

-w:表示不用控制臺窗口,使用 Windows 子系統(tǒng)執(zhí)行,當(dāng)程序啟動的時(shí)候不會打開命令行(只對 Windows 有效)

-c:表示打開控制臺窗口,使用控制臺子系統(tǒng)執(zhí)行,當(dāng)程序啟動的時(shí)候會打開命令行(默認(rèn))(只對 Windows 有效)

-i:將 file.ico 添加為可執(zhí)行文件的資源,改變程序的圖標(biāo)(只對 Windows 系統(tǒng)有效)

安裝完成后,新建一個(gè)文件夾,將源文件放到該文件夾下面,打開cmd, cd 進(jìn)入該文件夾下(重點(diǎn)),執(zhí)行下面語句

生成的文件結(jié)構(gòu)如下

exe 可執(zhí)行文件在 dist 目錄下

這就是本文所有的內(nèi)容了,如果感覺還不錯(cuò)的話。? 點(diǎn)個(gè)贊再走吧!??!?


后續(xù)會繼續(xù)分享各種干貨,如果感興趣的話可以點(diǎn)個(gè)關(guān)注不迷路哦~。



??源碼獲取方式??

像我這么寵粉的人~當(dāng)然會給關(guān)注我的粉絲們億點(diǎn)小福利啦,關(guān)注下方小卡片,回復(fù)工具左上角的名稱即可獲取源碼哦!

? ? ?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119758.html

相關(guān)文章

  • ?? 程序員【代碼管理】工具介紹??,熱門語言更新這么快,你繞不過這一關(guān)的!

    上次講了2個(gè)游戲源碼 前端實(shí)戰(zhàn)之js推箱子游戲(有界面、附源碼、贊關(guān)藏) Python實(shí)戰(zhàn):五子棋小游戲,切身感受一下前端和桌面應(yīng)用的區(qū)別,選擇自己喜歡的 本來今天準(zhǔn)備寫一篇面向?qū)ο笪恼拢窍胍幌?,講面向?qū)ο笾斑€是先給大家介紹幾款實(shí)用的工具,更加快速的理解,掌握知識點(diǎn)。 1.UML 統(tǒng)一建模語言(Unified Modeling Language,UML)是一種為面向?qū)ο笙到y(tǒng)的產(chǎn)品進(jìn)行說明、可...

    array_huang 評論0 收藏0
  • 女友忽然欲買文胸,但不知何色更美,Python【全程實(shí)戰(zhàn),議藏

    摘要:文章目錄情景再現(xiàn)本文關(guān)鍵詞挑個(gè)軟柿子單頁爬取數(shù)據(jù)處理翻頁操作擼代碼主調(diào)度函數(shù)頁面抓取函數(shù)解析保存函數(shù)可視化顏色分布評價(jià)詞云圖源碼獲取方式情景再現(xiàn)今日天氣尚好,女友忽然欲買文胸,但不知何色更美,遂命吾剖析何色買者益眾,為點(diǎn)議,事后而獎勵(lì)之。 ...

    寵來也 評論0 收藏0
  • ??爬蟲+自動化利器 selenium 自學(xué)成才篇(一)??

    文章目錄 selenium 簡介selenium安裝安裝瀏覽器驅(qū)動確定瀏覽器版本下載驅(qū)動 定位頁面元素打開指定頁面id 定位name 定位class 定位tag 定位xpath 定位css 定位link 定位partial_link 定位 瀏覽器控制修改瀏覽器窗口大小瀏覽器前進(jìn)&后退瀏覽器刷新瀏覽器窗口切換常見操作 鼠標(biāo)控制單擊左鍵單擊右鍵雙擊拖動鼠標(biāo)懸停 鍵盤控制 seleni...

    james 評論0 收藏0
  • 爬蟲 + 自動化利器 selenium 自學(xué)成才篇(二)

    摘要:耗時(shí)代碼運(yùn)行到這句之后觸發(fā)隱式等待,在輪詢檢查后仍然沒有定位到元素,拋出異常。耗時(shí)值得一提的是,對于定位不到元素的時(shí)候,從耗時(shí)方面隱式等待和強(qiáng)制等待沒什么區(qū)別。 ...

    AWang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<