按照需要分別率長寬比匯出圖片(python 3)

來源:互聯網
上載者:User

標籤:

效率提升的問題

之前朋友需要把大量的圖片用解析度進行區分尋找,他說都是開啟圖片,然後用尺子在螢幕上量。。。。。。我也是瀑布汗。。。。花的點時間幫他寫的小軟體,解決這個蛋疼的問題

 

解決方案

本想用批處理解決,但是考慮到易用性,就用python的tkinter做了簡單的介面方便操作。

他也不是程式開發人員,讓他安裝python環境並不現實,就需要用打包工具處理,網上看到很多用py2exe,看起來有點麻煩,我就直接用pyinstaller打包了,一行代碼搞定。

 

原始碼

 1 # -*- coding: utf-8 -*- 2 import os 3 from PIL import Image as pilImage 4 from tkinter import * 5 import tkinter.messagebox as messagebox 6 import tkinter.filedialog as dialog 7  8 class Application(Frame): 9     def __init__(self, master=None):10         Frame.__init__(self, master)11         self.pack()12         self.createWidgets()13 14     def createWidgets(self):15         Label(self, text="輸入地址:", font=("微軟雅黑", 12), width=10, height=1).grid(row=0)16         Label(self, text="輸出地址:", font=("微軟雅黑", 12), width=10, height=1).grid(row=1)17         Label(self, text="長寬比:", font=("微軟雅黑", 12), width=10, height=1).grid(row=2)18         self.inInput = Entry(self)19         self.outInput = Entry(self)20         self.minInput = Entry(self,width=8)21         Label(self, text="-", font=("微軟雅黑", 12), width=1, height=1).grid(row=2,column=2)22         self.maxInput = Entry(self,width=8)23         self.inInput.grid(row=0,column=1,columnspan=3)24         self.outInput.grid(row=1,column=1,columnspan=3)25         self.minInput.grid(row=2,column=1)26         self.maxInput.grid(row=2,column=3)27 28         self.minInput.insert(END,1)29         self.maxInput.insert(END,1.1)30 31         self.inButton = Button(self, text=‘選擇‘, command=self.openInDir)32         self.outButton = Button(self, text=‘選擇‘, command=self.openOutDir)33         self.inButton.grid(row=0,column=5)34         self.outButton.grid(row=1,column=5)35 36         self.excuteButton = Button(self, text=‘輸出‘, command=self.export)37         self.excuteButton.grid(row=2,column=5)38 39     def export(self):40         in_path = self.inInput.get()41         out_path = self.outInput.get()42         excute_path = ‘‘43         excute_count = 044         files = os.listdir(in_path)45         for file in files:46             excute_path = in_path + ‘/‘ + file47             im = pilImage.open(excute_path,‘r‘)48             if im.size[1]/im.size[0] >= float(self.minInput.get()) and im.size[1]/im.size[0] <= float(self.maxInput.get()):49                 im.save(out_path + ‘/‘ + file, "PNG")50                 print(out_path + ‘/‘ + file)51                 excute_count = excute_count + 152         messagebox.showinfo(‘Message‘, excute_count)53 54     def openInDir(self):55         self.inInput.delete(0,END)56         self.inInput.insert(END,dialog.askdirectory())57 58     def openOutDir(self):59         self.outInput.delete(0,END)60         self.outInput.insert(END,dialog.askdirectory())61 62 app = Application()63 app.master.title(‘圖片處理‘)64 app.mainloop()

 

其他相關

這裡有直接打包好的exe問題 ----->  

 

運行:

按照需要分別率長寬比匯出圖片(python 3)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.