Python開發(fā)GUI工具介紹侮穿,實戰(zhàn):將圖片轉(zhuǎn)化為素描畫!

陽光普照好刺眼

7月華為云社區(qū)與csdn聯(lián)合舉辦了黑馬程序員的征文活動毁嗦,由于規(guī)則簡單(保證原創(chuàng)文章亲茅、內(nèi)容為技術(shù)類為主、且文章篇幅1000字+即可)狗准,所以興高采烈的參加了活動克锣。


華為云社區(qū)活動

本來是抱著打醬油的心態(tài)參加活動,沒想到今早看到獲獎名單時腔长,喜悅中卻但這蛋蛋的憂傷...


獲獎名單

一等獎一份袭祟、二等獎兩份、陽光普照獎這個有有些刺眼了20份捞附。想想20把小風扇巾乳,是否該在公司附近尋摸一個位置下班了擺個攤賣小風扇,哈哈鸟召。在此還是要再感謝下華為云社區(qū)的這次活動胆绊,獎品豐富的同時還激勵大家總結(jié)博客文章,大贊欧募!

python開發(fā)GUI

今天一位從我公眾號開始結(jié)識的朋友压状,詢問關(guān)于如何快速編寫一個exe工具的問題。由于功能簡單且之前無相關(guān)GUI編程基礎(chǔ)槽片,為了快速完成開發(fā)何缓,我向他推薦了easygui模塊。
python作為膠水語言还栓,幾乎沒有不能做的事情碌廓,但個人一直覺得在GUI開發(fā)方面python可以算作是短板了,為什么剩盒?因為性能...python的性能問題谷婆,往往出現(xiàn)在其他編程語言對其的鄙夷中。但不管如何python在GUI編程上,也是有大量優(yōu)秀模塊的

tkinter

也許有些人不知道這個模塊纪挎,但如果你安裝python后期贫,使用過自帶的IDLE,那么你就應(yīng)該了解它异袄。tkinter作為python自帶的GUI模塊通砍,IDLE便是通過該模塊開發(fā)的,也是我比較喜歡的一個模塊

easygui

第一次了解這個模塊烤蜕,還是在小甲魚的《零基礎(chǔ)入門學(xué)習python》時學(xué)習的封孙,該模塊對Tkinter進行了二次封裝,是的GUI操作變得更為簡單讽营,但同時也局限于表層的使用虎忌,

wxpython

wxpython是一個Python包裝wxWidgets(這是用 C++ 編寫),一個流行的跨平臺GUI工具包橱鹏。在wxPython API主要模塊包括一個核心模塊膜蠢。
wxpython的優(yōu)勢在速運行速度較快,但編寫起來較為復(fù)雜莉兰,而且界面美化效果較差...

PYQT5

Qt是一套跨平臺的C++庫挑围,不論是C++、Java還是Python贮勃,都可以通過它來實現(xiàn)GUI界面的開發(fā)贪惹。PyQt5是Qt v5的一套全面的Python綁定苏章。它實現(xiàn)為超過35個擴展模塊寂嘉,并使Python能夠在所有支持的平臺(包括iOS和Android)上用作C ++的替代應(yīng)用程序開發(fā)語言。
如果你對GUI編程非常感謝興趣枫绅,可以用心學(xué)學(xué)這個模塊泉孩,但如果你只是想快速的實現(xiàn)一些GUI的功能,我更推薦大家學(xué)習tkinter模塊并淋,為什么寓搬?

  1. tkinter作為python默認自帶的模塊庫,無需單獨安裝
  2. tkinter相比于wxpython與pyqt在針對小工具的編程方面县耽,更為高效
  3. tkinter在網(wǎng)上存在大量的快速入門教程
tkinter實戰(zhàn)

為了證明tkinter的方便與高效句喷,我將很早前在公司寫的一個pythonGUI代碼,將圖片轉(zhuǎn)化為素描畫的小工具兔毙,晚上重寫了一次唾琼,先給大家看看實現(xiàn)效果:


素描畫
避坑指南
tktiner添加圖片

大家看到,tktiner中附帶了一個我的微信二維碼澎剥,這里只是為了演示tkinter添加圖片锡溯,沒有絲毫推廣的味道,哈哈...這里要注意下,tktiner在添加圖片時祭饭,PhotoImage(file='tmp.gif')要求圖片必須是.gif結(jié)尾的圖片芜茵,否則就會報錯:

_tkinter.TclError: couldn’t recognize data in image file

關(guān)于base64

大家看到我沒有加載圖片,而是通過base64提前轉(zhuǎn)碼好二進制文件后倡蝙,再進行導(dǎo)入九串,這樣我們打包的exe在使用時,就無需附帶一個圖片文件了寺鸥!

import base64

with open('demo.gif','rb') as f:
    data = f.read()
img = base64.b64encode(data)
tkinter打包

既然我們開發(fā)的是GUI工具蒸辆,必須得打包成exe才更好玩啊析既!但是以往很正常的打包躬贡,這次居然報錯了:

pyinstaller報錯

找了半天才發(fā)現(xiàn),從python 3.6開始眼坏,enum34庫不再與標準庫兼容拂玻。該庫也是不必要的,因此只需卸載它即可宰译。
pip uninstall enum34
再次執(zhí)行檐蚜,大功告成!
exe文件轉(zhuǎn)換

總體代碼

最后附上工具的整體代碼沿侈,可供大家參考:

# -*- coding: utf-8 -*-
# @Author   : 王翔
# @JianShu  : 清風Python
# @Date     : 2019/8/6 01:18
# @Software : PyCharm
# @version  :Python 3.7.3
# @File     : ChangeImage.py


from tkinter.messagebox import *
from tkinter.filedialog import *
from tkinter import *
import base64
from PIL import Image, ImageFilter, ImageOps
import os

img_bs64 = b'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'


def dodge(a, b, alpha):
    return min(int(a * 255 / (256 - b * alpha)), 255)


def draw(dir_info, blur=25, alpha=1.0):
    base_dir = os.path.dirname(os.path.abspath(__file__))
    save_file_name = os.path.join(base_dir, 'final.png')
    img = Image.open(dir_info)
    img1 = img.convert('L')  # 圖片轉(zhuǎn)換灰色
    img2 = img1.copy()
    img2 = ImageOps.invert(img2)
    for i in range(blur):
        img2 = img2.filter(ImageFilter.BLUR)
    width, height = img1.size
    for x in range(width):
        for y in range(height):
            a = img1.getpixel((x, y))
            b = img2.getpixel((x, y))
        img1.putpixel((x, y), dodge(a, b, alpha))
    img1.save(save_file_name)
    img1.show()


class LoginPage(object):
    def __init__(self, master=None):
        self.root = master
        self.root.geometry('%dx%d' % (420, 240))
        self.page = Frame(self.root)
        self.Dir = StringVar()
        self.Port = StringVar()
        self.path = StringVar()
        self.dir_info = StringVar()
        self.create_page()

    def create_page(self):
        self.page.grid()
        with open('tmp.gif', 'wb+') as f:
            f.write(base64.b64decode(img_bs64))
        self.photo = PhotoImage(file='tmp.gif')
        os.remove('tmp.gif')
        Label(self.page, text='''
        公眾號: 清風Python
        作者  : 王翔
        時間  :2019-08-06
        工具  :Python 3.7.3 Tkinter
        詳情  : 將圖片轉(zhuǎn)化為素描畫''', justify=LEFT).grid(row=0, column=0, columnspan=2, rowspan=1, stick=NW)
        Label(self.page, text="圖片路徑").grid(row=3, column=0, sticky=W, pady=5)
        self.dir_info = Entry(self.page, textvariable=self.path)
        self.dir_info.grid(row=3, column=1, columnspan=1, padx=20)
        Button(self.root, text="選擇路徑", command=lambda: self.select_path()).grid(row=0, column=0, sticky=S, padx=20,
                                                                                pady=5)
        Label(self.page, image=self.photo).grid(row=0, column=2)
        Button(self.page, text='轉(zhuǎn)換', command=self.login_check, width=10).grid(row=3, column=2, padx=10, pady=5)

    def select_path(self):
        path_ = askopenfilename(filetypes=[("file", "*.*")])
        self.path.set(path_)

    def login_check(self):
        img_dir = self.dir_info.get()
        if img_dir == "":
            showinfo(title='錯誤', massage='路徑錯誤')
        else:
            draw(img_dir)


root = Tk()
root.title('素描畫轉(zhuǎn)化工具')
LoginPage(root)
root.mainloop()
The End

OK,今天的內(nèi)容就到這里闯第,如果覺得內(nèi)容對你有所幫助,歡迎點擊文章右下角的“在看”缀拭。
公眾號回復(fù)素描咳短,下載打包好的exe圖片轉(zhuǎn)素描話工具,一起玩玩吧....
期待你關(guān)注我的公眾號清風Python蛛淋,如果覺得不錯咙好,希望能動動手指轉(zhuǎn)發(fā)給你身邊的朋友們。
希望每周一至五清晨的7點10分褐荷,都能讓清風Python的知識文章叫醒大家勾效!謝謝……

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市叛甫,隨后出現(xiàn)的幾起案子层宫,更是在濱河造成了極大的恐慌,老刑警劉巖其监,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萌腿,死亡現(xiàn)場離奇詭異,居然都是意外死亡棠赛,警方通過查閱死者的電腦和手機哮奇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門膛腐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鼎俘,你說我怎么就攤上這事哲身。” “怎么了贸伐?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵勘天,是天一觀的道長。 經(jīng)常有香客問我捉邢,道長脯丝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任伏伐,我火速辦了婚禮宠进,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘藐翎。我一直安慰自己材蹬,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布吝镣。 她就那樣靜靜地躺著堤器,像睡著了一般。 火紅的嫁衣襯著肌膚如雪末贾。 梳的紋絲不亂的頭發(fā)上闸溃,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音拱撵,去河邊找鬼辉川。 笑死,一個胖子當著我的面吹牛裕膀,可吹牛的內(nèi)容都是我干的员串。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼昼扛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了欲诺?” 一聲冷哼從身側(cè)響起抄谐,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎扰法,沒想到半個月后蛹含,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡塞颁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年浦箱,在試婚紗的時候發(fā)現(xiàn)自己被綠了吸耿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡酷窥,死狀恐怖咽安,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蓬推,我是刑警寧澤妆棒,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站沸伏,受9級特大地震影響糕珊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毅糟,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一红选、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姆另,春花似錦纠脾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至右核,卻和暖如春慧脱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贺喝。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工菱鸥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人躏鱼。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓氮采,卻偏偏與公主長得像,于是被迫代替她去往敵國和親染苛。 傳聞我的和親對象是個殘疾皇子鹊漠,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 2,986評論 1 3
  • 十幾歲的年少輕狂,二十幾歲的憤青迷茫茶行,三十幾歲的意氣瀟灑躯概,四十幾歲的成熟豁達。人生的閱歷畔师,成就了不同時期的心境娶靡。 ...
    小思玉言閱讀 374評論 0 0
  • 起了個早姿锭,想拍拍朝霞中的瀘沽湖塔鳍,云層太厚,太陽公公很難露面呻此,隨手拍拍就是一個字“美” 做為越野人轮纫,他們玩的就是速度...
    汪凌眉閱讀 724評論 4 3