效率提升的问题

之前朋友需要把大量的图片用分辨率进行区分查找,他说都是打开图片,然后用尺子在屏幕上量。。。。。。我也是瀑布汗。。。。花的点时间帮他写的小软件,解决这个蛋疼的问题

 

解决方案

本想用批处理解决,但是考虑到易用性,就用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 = 0
44         files = os.listdir(in_path)
45         for file in files:
46             excute_path = in_path + '/' + file
47             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 + 1
52         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问题 ----->  下载地址

 

运行截图:

posted @ 2016-04-07 14:36 玄猫大人 阅读(1933) 评论(0) 推荐(0) 编辑
摘要: 这几天在看子龙山人的关于OpenGL的文章,先依葫芦画瓢,能看到些东西,才能慢慢深入了解,当入门文章不错,但是其中遇到的一些问题,折腾了一些时间,为了方便和我一样的小白们,在这篇文章中进行写补充。 OpenGL ES2.0教程:编写自己的shader(2)--子龙山人 文章中关于VBO和VAO部分的 阅读全文
posted @ 2016-03-14 22:47 玄猫大人 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 叨逼叨好久没更新博客了,才几个月,发生了好多事情,处理了好多事情。不变的是写代码依然在继续。做点啥子看看objective-c的书,学着写了个柱状图,只是练习的demo而已,iOS上的图表控件已经有非常好的解决方案了。PNChart:https://github.com/kevinzhow/PNCh... 阅读全文
posted @ 2015-09-10 21:29 玄猫大人 阅读(2959) 评论(3) 推荐(1) 编辑
摘要: 戏说虽然公司再如何如何,咱程序员在干好课外学习的情况下也是要努力做好本职工作的。工作中的lua也写多了,深入了解Cocos2d-x当然还是要倒腾倒腾C++,对于一个C#用了这么多年,工作用lua的小菜来说,C++还真是不习惯。Cocos2d-x不知不觉的更新到了3.6版本,真是万人大吐槽,2d还没做... 阅读全文
posted @ 2015-05-08 00:23 玄猫大人 阅读(1154) 评论(0) 推荐(0) 编辑
摘要: 缘起 身为IT人,在3,4月总是离不开一个话题,那就是跳槽。不换工作的大多是薪水上去了,换工作的大多是别人家给了高薪水,没涨薪水不走的大多估计是没有找到好的下家。在IT行业人才流动实在是太常见了,身边的同事换了一波又一波,感情上是不舍得的,但是还是觉得人才的流动还是好的,把最合适的人放到最合适的位... 阅读全文
posted @ 2015-04-29 01:02 玄猫大人 阅读(2823) 评论(16) 推荐(16) 编辑
摘要: 需求这几天在公司里,项目需要将游戏游戏中的2D城堡界面在拉动的时候显示出3D的拉近效果。当时是在Cocos2d-x下实现的。回家的时候自己重新用Unity实现的了一遍。虽然现在Unity已经到了5.0时代,从4.6时代起Unity就开始支持原生2D了,网络上大部分的教程还是NGUI。毕竟原生的也是开... 阅读全文
posted @ 2015-04-27 22:20 玄猫大人 阅读(11735) 评论(4) 推荐(1) 编辑
摘要: 需求unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能。但是在原生的2d中并没有相同的功能。现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一些例如机器人、npc等,都需要自动寻路的功能。我需要实现的功能类似于当年FC游戏中淘金者的运动方式。游戏... 阅读全文
posted @ 2015-04-14 23:12 玄猫大人 阅读(2559) 评论(0) 推荐(0) 编辑
摘要: 最近工作实在是太忙了,没办法认真写博客,但是还是要好好记录下日常的学习。需求各类游戏中都大量运用到计时功能,不管是直接显示的在前端UI,还是后台运行。思路Unity中提供了Time类可以方便的进行时间上的获取,下面的例子中,我对其进行的简单的封装,能够方便的运用到各类型的游戏中。不少游戏中同时还提供... 阅读全文
posted @ 2015-04-10 22:43 玄猫大人 阅读(3844) 评论(2) 推荐(0) 编辑
摘要: 需求在日常游戏中,文字滚动效果是比较常用的。例如日常游戏顶部的新闻公告,聊天系统的文字滚动,都属于这个范围。思路由于使用的地方比较广泛,所以希望能够尽量独立的游戏之外,能够做到随处使用的功能。NGUI中有很方便的实现,由于功能比较简单,我这里就使用U3D中原生的GUI进行实现,便于以后的移植。实现一... 阅读全文
posted @ 2015-04-09 22:49 玄猫大人 阅读(7282) 评论(0) 推荐(0) 编辑
摘要: cocos2d-x中的万年大坑,字体总算是有比较好的结局办法了。之前都是CCLabelTTF,CCLabelBMFont,CCLabelAtlas什么的,我只想说一句:好难用!毕竟是做游戏,那么难看的字体,那么麻烦的用法,不!能!忍!现在,直接使用Label就!可!以!了!首先我们先来看看一个结构体... 阅读全文
posted @ 2015-02-05 11:09 玄猫大人 阅读(1503) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示