国家产激情女熟女伦乱,成人无码精品1区2区3区免费看 ,www.婷婷,国产精品一区二区无码观看秘书,深爱五月婷婷,天堂资源在线欧美亚洲,少妇被躁爽到高潮无码A大乱3,亚洲精品无码一区二区四区,欧美一级二级三级视品,亚洲ⅴ国产v天堂a无码二区

  • <center id="8hghx"></center>

    
    
      <li id="8hghx"><tbody id="8hghx"><th id="8hghx"></th></tbody></li>
      <rt id="8hghx"></rt><li id="8hghx"></li>
      <rt id="8hghx"><tr id="8hghx"></tr></rt>

      1. <rt id="8hghx"><tr id="8hghx"><xmp id="8hghx"></xmp></tr></rt>
        歡迎訪問博易創(chuàng)科技官網(wǎng),專注研發(fā)數(shù)碼打印機(jī)20年!
        全國咨詢熱線:400-8316492
        聯(lián)系我們
        400-8316492

        手機(jī):13823737137

        郵箱:3485053954@qq.com

        QQ:3485053954

        地址:深圳市龍崗區(qū)橫坪公路89號(hào)數(shù)字硅谷E棟4樓

        當(dāng)前位置:首頁 > 行業(yè)新聞 > 技術(shù)問題

        用Python研發(fā)GUI實(shí)戰(zhàn)教程:照片轉(zhuǎn)換素描畫工具

        時(shí)間:2025-01-23 18:19:17 作者:147小編 點(diǎn)擊: 次

        undefined
        undefined
        undefined
        undefined
        undefined

        undefined

         

        python做為膠水語言,它幾乎是無所不可的,但個(gè)人始終覺得在GUI研發(fā)方面,python能夠算作是短板了,為何由于性能…python的性能問題,常常此刻其他編程語言對(duì)其的鄙夷中。但不管怎樣python在GUI編程上,是有海量優(yōu)秀模塊的。

        1 . tkinter

        許有些人不曉得這個(gè)模塊,但倘若你安裝python后,運(yùn)用過自帶的IDLE,那樣你就應(yīng)該認(rèn)識(shí)它。tkinter做為python自帶的GUI模塊,IDLE便是經(jīng)過該模塊研發(fā)的,是我比較愛好的一個(gè)模塊。

        2 . easygui

        第1認(rèn)識(shí)這個(gè)模塊,還是看了別人的一個(gè)教程,它對(duì)Tkinter進(jìn)行了二次封裝,使得GUI操作變得更為簡單,但同期局限于表層的運(yùn)用,沒法自定義更優(yōu)雅的實(shí)現(xiàn)方法。

        3 . wxpython

        wxpython是一個(gè)Python針對(duì)wxWidgets(這是用 C++ 編寫)包裝后的產(chǎn)物,算是個(gè)流行的跨平臺(tái)GUI工具包。wxpython的優(yōu)良在于運(yùn)行速度較快,但編寫起來較為繁雜,況且界面美化效果較差…當(dāng)然有第三方研發(fā)的wxFormBuiler拖拽編輯器,能替代部分的底層代碼實(shí)現(xiàn)。不在乎外觀但追求速度的伴侶,能夠思慮它。

        4 . PYQT5

        Qt是一套跨平臺(tái)的C++庫,不論是C++、Java還是Python,都能夠經(jīng)過它來實(shí)現(xiàn)GUI界面的研發(fā)。PyQt5是Qt v5的一套全面的Python綁定。它實(shí)現(xiàn)為超過35個(gè)擴(kuò)展模塊,上千個(gè)實(shí)現(xiàn)函數(shù)。使Python能夠在所有支持的平臺(tái)(包含iOS和Android)上用作C++的替代研發(fā)語言。

        倘若你對(duì)GUI編程非常感謝興趣,能夠用心學(xué)學(xué)這個(gè)模塊,但倘若你只是想快速的實(shí)現(xiàn)有些GUI的功能,我更舉薦大眾學(xué)tkinter模塊,為何?tkinter做為python默認(rèn)自帶的模塊庫,無需單獨(dú)安裝tkinter相比于wxpython與pyqt在制作小工具的方面,更為有效tkinter在網(wǎng)上存在海量的快速入門教程

        tkinter實(shí)戰(zhàn)

        為了證明tkinter的方便與有效,今天來編寫一個(gè)將照片轉(zhuǎn)化為素描畫的小工具,先給大眾瞧瞧實(shí)現(xiàn)效果:

        避坑指南

        1 . tktiner添加照片

        大眾看到,tktiner中附帶了一個(gè)我的微X二維碼,這兒只是為了演示tkinter添加照片,絲毫推廣的味道,哈哈…這兒重視下,tktiner在添加照片時(shí),PhotoImage(file=tmp.gif)需求照片必須是.gif結(jié)尾的照片,否則就會(huì)報(bào)錯(cuò):

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

        2 . 關(guān)于base64

        大眾看到我加載照片,而是經(jīng)過base64提前轉(zhuǎn)碼好二進(jìn)制文件后,再進(jìn)行導(dǎo)入,這般咱們打包的exe在運(yùn)用時(shí),就無需附帶一個(gè)照片文件了!

        1import base64 2 3with open(清風(fēng)Python.gif,rbas f: 4    data= f.read()5img = base64.b64encode(data) 6print(img)

        tkinter打包

        既然咱們研發(fā)的是GUI工具,必須得打包成exe才更好玩??!然則昨天有伴侶反饋,打包的地區(qū)說的太粗,光看動(dòng)圖不曉得怎樣操作。那樣今天我簡單說下。

        首要python的打包工具非常多,但我始終以來比較愛好運(yùn)用pyinstaller,當(dāng)然大眾能夠去嘗試cx_freeze、Py2exe等。

        首要,咱們需要安裝pyinstaller:運(yùn)用pip install pyinstaller。

        安裝完成,會(huì)在python程序根目錄的Scripts文件夾下生成pyinstaller.exe。

        倘若在軟件安裝時(shí),將Scripts添加至系統(tǒng)環(huán)境變量,需要手動(dòng)添加到環(huán)境變量的PATH中,否則沒法在cmd下運(yùn)用該命令。

        以往很正常的打包,有位伴侶反饋運(yùn)用相同的代碼打包失?。?/p>

        pyinstaller報(bào)錯(cuò)

        找了半天才發(fā)掘從python 3.6起始,enum34庫再也不與標(biāo)準(zhǔn)庫兼容。該庫是不必要的,因此呢只需卸載它就可。

        pip uninstall enum34再次執(zhí)行打包操作就可。

        總體代碼

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

        1# -*- coding: utf-8 -*- 2# @Author   : 王翔 3# @JianShu  : 清風(fēng)Python 4# @Date     : 2019/11/14 01:18 5# @Software : PyCharm 6# @version  :Python 3.7.3 7# @File     : ChangeImage.py 8 9 10from tkinter.messagebox import * 11from tkinter.filedialog import * 12from tkinter import * 13import base64 14from PIL import Image, ImageFilter, ImageOps 15import os 16 17img_bs64 = bR0lGODlhwADBAPcAAAAAAAAAMwAAZgAAmQAAzAAA/wArAAArMwArZgArmQArzAAr/wBVAABVMwBVZgBVmQBVzABV/wCAAACAMwCAZgCAmQCAzACA/wCqAACqMwCqZgCqmQCqzACq/wDVAADVMwDVZgDVmQDVzADV/wD/AAD/MwD/ZgD/mQD/zAD//zMAADMAMzMAZjMAmTMAzDMA/zMrADMrMzMrZjMrmTMrzDMr/zNVADNVMzNVZjNVmTNVzDNV/zOAADOAMzOAZjOAmTOAzDOA/zOqADOqMzOqZjOqmTOqzDOq/zPVADPVMzPVZjPVmTPVzDPV/zP/ADP/MzP/ZjP/mTP/zDP//2YAAGYAM2YAZmYAmWYAzGYA/2YrAGYrM2YrZmYrmWYrzGYr/2ZVAGZVM2ZVZmZVmWZVzGZV/2aAAGaAM2aAZmaAmWaAzGaA/2aqAGaqM2aqZmaqmWaqzGaq/2bVAGbVM2bVZmbVmWbVzGbV/2b/AGb/M2b/Zmb/mWb/zGb//5kAAJkAM5kAZpkAmZkAzJkA/5krAJkrM5krZpkrmZkrzJkr/5lVAJlVM5lVZplVmZlVzJlV/5mAAJmAM5mAZpmAmZmAzJmA/5mqAJmqM5mqZpmqmZmqzJmq/5nVAJnVM5nVZpnVmZnVzJnV/5n/AJn/M5n/Zpn/mZn/zJn//8wAAMwAM8wAZswAmcwAzMwA/8wrAMwrM8wrZswrmcwrzMwr/8xVAMxVM8xVZsxVmcxVzMxV/8yAAMyAM8yAZsyAmcyAzMyA/8yqAMyqM8yqZsyqmcyqzMyq/8zVAMzVM8zVZszVmczVzMzV/8z/AMz/M8z/Zsz/mcz/zMz///8AAP8AM/8AZv8Amf8AzP8A//8rAP8rM/8rZv8rmf8rzP8r//9VAP9VM/9VZv9Vmf9VzP9V//+AAP+AM/+AZv+Amf+AzP+A//+qAP+qM/+qZv+qmf+qzP+q///VAP/VM//VZv/Vmf/VzP/V////AP//M///Zv//mf//zP///wAAAAAAAAAAAAAAACH5BAEAAPwALAAAAADAAMEAAAj/APcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIENOBECypMmTKFOWFDNRGTFlkyalEXMjxooAAW4CiCEjjcifD8OoHErU5MGiSFXeKKgMjUJ6+8RMIjaJ0Q0ZYmJkknQgRowAXm9MylSRJcVMZAWigboPLUM0yg7CLSgmqV2jBu/qNTswE4CEylySzDTmxs6s+5btDLB4xU6KxADEHfl3nzIAmgQ6ZgggbcHOBXHovXt0dFK+DZVlEkMsE5pJjWKIweG1NtjbBlAD3U3XdNLSJGOgETO8OPHjxpNPMqlbYb1Mk8Rk6jVG0nAxs73mPKDiwAqvrJku/6MXd5m+8dHoRavHO2PdksmRy4+PBk0MvJ/hW2QOURIj1powIskYYoSBnVcrGPDVCl3FcANqzxFDjCYuUfjSeMosA017Fr1HkkVo4EcQfxWRiNBjbQEQQBiRwUCMGDAAIEYa公斤THGAAP+lRPTfc5mAZJ0U0SVQxjDDbWPjIJeWJllxEj0H0CXTbMk0yCVlA9VkKZkFAldSjiQCY5VWJJSyUknUCRyUaPbNFhF5MYB+xU24HQ4TCbCnZmJRxxysxmn3BjTAJTGpNoQtWFA8U00A2TTSLmPjg0+qgYk9E12WoKeVgZRSF2mddK+4Ha0DDYZfJcm0LCZBN42M0GwHetXv/Xaqt5YlfrGITSWFehgS1TKYehfRmRpsAB8Og+p40o6kKtAfBmgVJJMkltXtEW52HX8cigV111BdaDs9YUBrh2PugkQb8CS+xAmg5FUKcffkoSasmCuaxCqwUgyUzDTBLGa8rc4Fh0MaggFng88pSJTQfM+J1W1To4m3TY8SiGDHZmIuFA5hHklkEfOzSMZ3MRxGW8ArWrEkHr5kfSsfUKZFKZCzVi2HBlypaZV39BoyJLw8lAEmNhQBrvvEPedxhLM733YI92bmjZuTJvStBmD2mJrJLsiqhySu8Ki+y9MY+NtEIw1bQCgVt49/TQKpIE7mwJ36gCzz3mnXBYW2T/dWCCrGKXBjHLaDJMZu2J5mnKv3W9uLIvQ04UvfcepKpXOMvJM0kJfsdFwt9p7pWCgOdNLbUGzrpq4GOhpWh7LUfVuFpim2j25JI3V9Ayesooxne3mRSjbDWdhLfoNikIgAorwHC6bFIZaN/wMRiAQxgzEYgdhydb/TVKLNeun71FUS63QiThsPY+N9wI6nAxWNY+S0rz1zuOeBvgmOaHSSJQvzVa3v5k47/VyKBSl0mL1hKSJasZJHbfO0nYHkc+GUluKOazYEIcFIYA3IAYOTFen7yiiUw074P1GxoKqXWDz1FLdDsxkISgM62v3OduslFG0zKxjIHEgD1IOpbl/xglEEwlRHEokx1SwkfBqkWughjMnUL6JTSU3GgFNTmA82qTIM11RQUk2WLqsDOcLXALhwKD3iSGMbJhFMwmwfHbjKSym9jBiygTTGIFMxjFPSoEDVWMm/t2ci3+ASBOPcLh8ySGHUZkol8x6NsNzJi6GDiPCwa6gVDu9p5McMErjnKTSLrHxKKU0oFONNYFVZJBmkXpUcS4I3zqEgMuoEEFYOnRTmr4FQXFAAcLA6W/4PfIsaShb1LBThje6KAXiSEAM5rT034puH3UQ2oEERREtHnKU7prIHcsFh9VArPK+YUgkSnJjSwDFqfcxzCg4tG8xJK0J2HHWcRwxz70sf+CqbQlKyWRzT9VIBAV3FMMjVjJmVzCFCs1JBoOFQgSvTc7JeoxleUsnxQR0qeJnsRDzzNJAGBwvevNKgw42EJNtvDIYbymTTEIQ/PgeEOEFWxFYlCBDAwkG+jZKl3u8VpFwykvDaZsVkhtlWdupzt2fUWkwYGn6K6VIDA+bDZjbNV/xCCt6PinjLSpDQwY0xUz/s6XeVtBWO20wx5yhJR9Sapcu1lUIUZkZn9cJkpqUxLAvSqgg4TeDa4zlta0SRLQEsPnFO公斤koAxLMGBKk/6NwY0rACoF4mdRIjqMqNS5mx92dS8LNildJJEfwawjEnu9pfLCPQ/IVIBYv0HP4H/jKsRUdHrTrAYFawFx2gmgSNxioRKi0zUS028nV0hYjvLxO+oIYrBZQ4Zy77KCTqCHKsKsJtDR/XCQf8ZAz2U2ZpWjRAHzOsRMeApreAQ4z4BwKWK7mMn+7gSI5qNCGclx7XPetZyfN0JI4KruKdGdX+ce+wwJIRY7CAWDYXxSuommZXHgnF5g7QifL2yhTz1FyNw5ZT4fEMUV+K1gjjYqEBidD4fko公斤9XsulX67qIDC2MY1dixBpGo1HptMqCTGY1GDjJIMZrBoFXSl+1xpABzPGEVPlvE+YrxjEdXvADd+XAoJctyBeJTIIwbzRyWXYhRnGUcEYTGUp+xkNtM4/8pnhsGZpRxii1L0cRAUM9iGrGc0VxDJqQQ0UwmyZMkxuc1UdvGb3bxmqUp5yzlOoo8H0r0+F3ducs20ppXKMlv19545lJAyYjwhjcUIBiugVGveG9DWaGxVJE2GqFOojMONuiQHcPV6TaLrKx+OGMMIK3GyOatszs1jmN60spEKLIYEjCoOknCM1cmmSQTwkI4BKJmkUpWdJKw78hXdhQP6ZZM075D3kcpym81uiEBjOdIaMAA6LKR1TjeqAbBMttnnmPOAsWhp0K1KWYJeyUx5c16JCyfZt5O4/BYNjHESjppaEMO0++IFqW4oVYRSRkw3ANgN6BZc5BcHjRos2P/9zgg3nMMOdsaEy7zbd9ACljAs44ZokRM9Cp5ztRIDGkBESHQwTvR9wC86jn0h59zHWC6qCNXBKZicXrXFh8X8qmEV2E6CE7pX3eA/f11B6LgTgJ8XnUPNRQiPwiADpUn4mfMt5Hw5PEntoDp5ryqYwbjovANF+z/LpJYYDDBSzA1QOnpd1c8cdHaJZGIyqukL5D3z+NsVTWMHwTwos7KFgAb4noeEkVcGxPb7jPU++jN9Lu/uFUVKSzaNWA3mJMFXUMYJh62STae265V9tOYgv39I8NuC2YRUviF+DhGYnqt8mcWPP2te/pSdcr+tx61nJCnaV+S8j2U6ZnNy+v7/5rTdIM2IARP1nHKBlheDYYCxwgAwEJJ/W5d9NP公斤C2SIxWX24YWoUiQnBhj7oF0xdUPBUUNDg2CLEVPHtDfgEW2yAXg+9R8xhQMw0BWSkFIXEwYsNUMFskaZ4A7K0GCMkAbyJiOMER4egU2NFxUPggP9BzL7oycIFgO05z710zmsUneoAx5ZFVPQQoInRRyMYG3EMA/00C9ctUb0AGxt0ioqcgPdQSkt2IL1YB9NFkkxcHuvElY3E公斤qoiA1cSCtEgafBB6YxFWWxVPYwUYaw0Yw4Cb6IBBzSIeMICBsNAxscRi3Nl8UV4XLcRCBKDNmMYjoc19V4zeQAiXpxBI0/3FhjJFi97E/KoVb0BJQQMNV1hQGwzBgXDUMPaQPbEEPpIgikTElbEEMSQgAetgLcxgDa2R0MZAGYAQmabF/yHKLoqWLtngUMbgQC5N5MqYVRSRlaheDNOE3xOB9OddwF5NC0hVZuSQG0OAnT/UvxOAfhUIqIwMDazQMcwgV4公斤P+lAg+zRqxBCOtaYM7RAAevgS7/UaQzIJNeFDjUIzMXAu9OhD5xKMT7JUPgSQVcgy8ARZ1uc78PUqOGhJ0fZJZgR2JggAkmBqNrhg7UCO9UCKoriRpEiHQFSH1uZxpDgP6egvBiUV4HEkA/kRaecx0FE8XucY+lMScbgCYNQV1//HOUCYjJYEAAKyRsTQDojVC/mkDPRQD3VoTQIRdFChD3OoD0hpTWIwDEaZhKT4XgVDRmmAeSuZGgJpGQLZ公斤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公斤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 18 19 20def dodge(a, b, alpha): 21    return min(int(a * 255 / (256 - b * alpha)), 255) 22 23 24def draw(dir_info, blur=25, alpha=1.0): 25    base_dir = os.path.dirname(os.path.abspath(__file__)) 26    save_file_name = os.path.join(base_dir, final.png) 27    img = Image.open(dir_info) 28    img1 = img.convert(L)  照片轉(zhuǎn)換灰色 29    img2 = img1.copy() 30    img2 = ImageOps.invert(img2) 31    for i in range(blur): 32        img2 = img2.filter(ImageFilter.BLUR) 33    width, height = img1.size 34    for x in range(width): 35        for y in range(height): 36            a = img1.getpixel((x, y)) 37            b = img2.getpixel((x, y)) 38        img1.putpixel((x, y), dodge(a, b, alpha)) 39    img1.save(save_file_name) 40    img1.show() 41 42 43class LoginPage(object): 44    def __init__(self, master=None): 45        self.root = master 46        self.root.geometry(%dx%d % (450, 250)) 47        self.page = Frame(self.root) 48        self.Dir = StringVar() 49        self.Port = StringVar() 50        self.path = StringVar() 51        self.dir_info = StringVar() 52        self.create_page() 53 54    def create_page(self): 55        self.page.grid() 56        with open(tmp.gif, wb+) as f: 57            f.write(base64.b64decode(img_bs64)) 58        self.photo = PhotoImage(file=tmp.gif) 59        os.remove(tmp.gif) 60        Label(self.page, text= 61 62        ********: Python 63        作者  : ***  64        時(shí)間  :2019 65        工具  :Python 3. 7. 3 Tkinter         66        詳情  : 照片轉(zhuǎn)素描畫工具, justify=LEFT).grid(row=0, column=0, columnspan=2, rowspan=1, stick=NW) 67        Label(self.page, text="照片路徑").grid(row=3, column=0, sticky=W, pady=5) 68        self.dir_info = Entry(self.page, textvariable=self.path) 69        self.dir_info.grid(row=3, column=1, columnspan=1, padx=20) 70        Button(self.root, text="選取路徑", command=lambda: self.select_path()).grid(row=0, column=0, sticky=S, padx=20, 71                                                                                pady=5) 72        Label(self.page, image=self.photo).grid(row=0, column=2) 73        Button(self.page, text=轉(zhuǎn)換, command=self.login_check, width=10).grid(row=3, column=2, padx=10, pady=5) 74 75    def select_path(self): 76        path_ = askopenfilename(filetypes=[("file", "*.*")]) 77        self.path.set(path_) 78 79    def login_check(self): 80        img_dir = self.dir_info.get() 81        if img_dir == "": 82            showinfo(title=錯(cuò)誤, massage=路徑錯(cuò)誤) 83        else: 84            draw(img_dir) 85 86 87root = Tk() 88root.title(素描畫轉(zhuǎn)化工具) 89LoginPage(root) 90root.mainloop()

      2. 免責(zé)聲明:部分文章信息來源于網(wǎng)絡(luò)以及網(wǎng)友投稿,本網(wǎng)站只負(fù)責(zé)對(duì)文章進(jìn)行整理、排版、編輯,是出于傳遞更多信息之目的,并不意味著贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真
      3. 實(shí)性,如本站文章和轉(zhuǎn)稿涉及版權(quán)等問題,請(qǐng)作者在及時(shí)聯(lián)系本站,我們會(huì)盡快刪除處理問答,若不聯(lián)系則默認(rèn)允許本站轉(zhuǎn)載。
      4. 上一篇:怎么樣用java實(shí)現(xiàn)照片與base64轉(zhuǎn)換
      5. 下一篇:75年前的老電臺(tái),咱們給他換換腦子!古老電臺(tái)改裝SDR
      6. 欧美精选午夜久久久乱码6080| 在线成人精品国产区免费| 91精品久久人妻一区二区夜夜夜| 精品国产中文字幕在线视频| 亚洲精品无码一区二区四区 | 国产精品中出av高潮| 国产熟妇另类高潮a?6?2v视频| 日韩欧美在线国产精品| 亚洲熟妇熟色在线观看| 久久狠狠高潮亚洲精品夜色| 无码人妻精品一区二区三| 91久久国产熟女精品| 国产一区二区日本韩国| 欧美日本天堂在线观看| 日韩精品一区二区三区日韩| 国内精品久久久久影视| 国内精品久久人妻朋友| 天堂久久av一区二区三区| 亚洲欧洲国产精品香蕉网| 国产精品一区二区刘玥| 最新天堂视频中文字幕| 黄色av中文字幕在线观看| 成人熟妇无套内射视频| 福利所天堂亚洲五月天| 亚洲国产初高中生女AV| 91之国产精品色老头| 干日本少妇一区二区三区| 欧美日韩国产另类久久| 亚洲国产性感美女视频| 国产精品免费无遮挡无码永久视频| 国内揄拍国内精品人妻久久| 美女视频黄频大全免费| 中文字幕亚洲人妻系列| 深夜亚洲精品免费福利你懂的 | 久久午夜夜伦鲁鲁片无码免费| 亚洲中文av在线观看| 开心激情站开心激情网六月婷婷| 亚洲精品一区二区三天美| 97色偷偷色噜噜男人的天堂| 中文字幕av一中文字幕| 青草亚洲视频在线观看|