<cite id="1lwsx"><noscript id="1lwsx"><samp id="1lwsx"></samp></noscript></cite>
<cite id="1lwsx"></cite>

  • <b id="1lwsx"></b>
    <rp id="1lwsx"><meter id="1lwsx"><p id="1lwsx"></p></meter></rp>

      1. <cite id="1lwsx"><span id="1lwsx"><var id="1lwsx"></var></span></cite>

      2. <rt id="1lwsx"></rt>

        <b id="1lwsx"></b>

      3. <rp id="1lwsx"><meter id="1lwsx"></meter></rp>

        D丶個人博客



        python3 圖片轉化為字符,并做成可視化操作工具-python3 圖片轉化為字符,并轉化成可視化操作工具。 | D丶個人博客

        python3 圖片轉化為字符,并做成可視化操作工具

        python3 圖片轉化為字符,并轉化成可視化操作工具。


        python3 圖片轉化為字符,并轉化成可視化操作工具。

        然后生成EXE文件,發給妹子,又裝逼成功~


        先上效果圖

        運行 python 文件,然后上傳一張小圖:

        2018052509412991.png


        生成txt 的文件:

        2018051416565816.png

        源碼:

        from tkinter import *
        from tkinter import filedialog
        from tkinter.filedialog import askdirectory
        from PIL import Image, ImageTk
        import tkinter.messagebox
         
        if __name__ == "__main__":
            root = Tk()
            File=''
         
            frame = Frame(root, bd=2, relief=SUNKEN)
            frame.grid_rowconfigure(0, weight=1)
            frame.grid_columnconfigure(0, weight=1)
            xscroll = Scrollbar(frame, orient=HORIZONTAL)
            xscroll.grid(row=1, column=0, sticky=E+W)
            yscroll = Scrollbar(frame)
            yscroll.grid(row=0, column=1, sticky=N+S)
            canvas = Canvas(frame, bd=0, xscrollcommand=xscroll.set, yscrollcommand=yscroll.set)
            canvas.grid(row=0, column=0, sticky=N+S+E+W)
            xscroll.config(command=canvas.xview)
            yscroll.config(command=canvas.yview)
            frame.pack(fill=BOTH,expand=1)
         
         
            # 開始轉化為字符串
            codeLib = '''@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,"^`'. '''#生成字符畫所需的字符集
            count = len(codeLib)
            def printcoords():
                global File
                File = filedialog.askopenfilename(parent=root, initialdir="C:/",title='Choose an image.')
                filename = ImageTk.PhotoImage(Image.open(File))
                canvas.image = filename  # <--- keep reference of your image
                canvas.create_image(0,0,anchor='nw',image=filename)
            
            def check():
                if not File:
                    tkinter.messagebox.showinfo('錯誤','還沒上傳圖片')
                else:          
                    path = askdirectory()
                    if path:
                        fp = open(File,'rb')
                        image_file = Image.open(fp)
                        image_file=image_file.resize((int(image_file.size[0]*0.6), int(image_file.size[1]*0.4)))#調整圖片大小
                        tmp = open(path+'/image.txt','w')
                        tmp.write(transform1(image_file))
                        tmp.close()
                        tkinter.messagebox.showinfo('成功','已成功保存為txt文件')
                             
         
            def transform1(image_file):
                image_file = image_file.convert("L")#轉換為黑白圖片,參數"L"表示黑白模式
                codePic = ''
                for h in range(0,image_file.size[1]):  #size屬性表示圖片的分辨率,'0'為橫向大小,'1'為縱向
                    for w in range(0,image_file.size[0]):
                        gray = image_file.getpixel((w,h)) #返回指定位置的像素,如果所打開的圖像是多層次的圖片,那這個方法就返回一個元組
                        codePic = codePic + codeLib[int(((count-1)*gray)/256)]#建立灰度與字符集的映射
                    codePic = codePic+'\r\n'
                return codePic
         
            def transform2(image_file):
                codePic = ''
                for h in range(0,image_file.size[1]):
                    for w in range(0,image_file.size[0]):
                        g,r,b = image_file.getpixel((w,h))
                        gray = int(r* 0.299+g* 0.587+b* 0.114)
                        codePic = codePic + codeLib[int(((count-1)*gray)/256)]
                    codePic = codePic+'\r\n'
                return codePic
         
         
         
            Button(root,text='選取圖片',command=printcoords).pack(side=LEFT,expand=YES,fill=Y)       
            Button(root,text='選擇保存路徑',command=check).pack(side=LEFT,expand=YES,fill=Y)
            root.mainloop()

        然后自己再轉化成exe文件,發給妹子玩

        20180514170317531.png



        評論


        About ME

        about me

        程序猿

        熱愛生活的程序猿 ,QQ:519395243

        山高自有客行路,水深自有渡船人?!段饔斡洝?/p>

        Contact ME

        QQ:519395243

        TAG cloud

        亚洲 美腿 另类 丝袜