效率提升的问题

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

解决方案

本想用批处理解决,但是考虑到易用性,就用python的tkinter做了简单的界面方便操作。

他也不是程序开发人员,让他安装python环境并不现实,就需要用打包工具处理,网上看到很多用py2exe,看起来有点麻烦,我就直接用pyinstaller打包了,一行代码搞定。

源代码

 # -*- coding: utf-8 -*-
import os
from PIL import Image as pilImage
from tkinter import *
import tkinter.messagebox as messagebox
import tkinter.filedialog as dialog class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets() def createWidgets(self):
Label(self, text="输入地址:", font=("微软雅黑", 12), width=10, height=1).grid(row=0)
Label(self, text="输出地址:", font=("微软雅黑", 12), width=10, height=1).grid(row=1)
Label(self, text="长宽比:", font=("微软雅黑", 12), width=10, height=1).grid(row=2)
self.inInput = Entry(self)
self.outInput = Entry(self)
self.minInput = Entry(self,width=8)
Label(self, text="-", font=("微软雅黑", 12), width=1, height=1).grid(row=2,column=2)
self.maxInput = Entry(self,width=8)
self.inInput.grid(row=0,column=1,columnspan=3)
self.outInput.grid(row=1,column=1,columnspan=3)
self.minInput.grid(row=2,column=1)
self.maxInput.grid(row=2,column=3) self.minInput.insert(END,1)
self.maxInput.insert(END,1.1) self.inButton = Button(self, text='选择', command=self.openInDir)
self.outButton = Button(self, text='选择', command=self.openOutDir)
self.inButton.grid(row=0,column=5)
self.outButton.grid(row=1,column=5) self.excuteButton = Button(self, text='输出', command=self.export)
self.excuteButton.grid(row=2,column=5) def export(self):
in_path = self.inInput.get()
out_path = self.outInput.get()
excute_path = ''
excute_count = 0
files = os.listdir(in_path)
for file in files:
excute_path = in_path + '/' + file
im = pilImage.open(excute_path,'r')
if im.size[1]/im.size[0] >= float(self.minInput.get()) and im.size[1]/im.size[0] <= float(self.maxInput.get()):
im.save(out_path + '/' + file, "PNG")
print(out_path + '/' + file)
excute_count = excute_count + 1
messagebox.showinfo('Message', excute_count) def openInDir(self):
self.inInput.delete(0,END)
self.inInput.insert(END,dialog.askdirectory()) def openOutDir(self):
self.outInput.delete(0,END)
self.outInput.insert(END,dialog.askdirectory()) app = Application()
app.master.title('图片处理')
app.mainloop()

其他相关

这里有直接打包好的exe问题 ----->  下载地址

运行截图:

按照需要分别率长宽比导出图片(python 3)的更多相关文章

  1. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  2. .net 下新版highcharts本地导出图片bug处理

    最近公司要用到highcharts这个插件来生成图表,所以我花了点时间研究了下. 现在最新的版本是3.0.2,这js插件居多优点就不比多说了,demo官网上也很详细.但是优点不爽的地方是,导出图片这个 ...

  3. Asp.net通过模板(.dot/Html)导出Word,同时导出图片

    一.Office组件导出Word(服务器配置麻烦) 需要引用Office的DLL,在下文的附件中,不同的Offic版本用的不一样,虽然高级版本可以兼容低级的,不过,还是统一版本最好 贴上核心代码(转载 ...

  4. FusionCharts V3图表导出图片和PDF属性说明(转)

    百闻不如一见,狠狠点击,快快下载:(演示文档有错误,不提供下载了.待新的演示文档出来.) 许多朋友说上面的DEMO用不了.fusioncharts官方的演示非常不错,就是来不及整理,各位大侠们可以研究 ...

  5. FusionChart 导出图片 功能实现(转载)

    FusionChart 导出图片 功能实现(转载) http://www.cnblogs.com/jiagoushi/archive/2013/02/05/2893468.html 题目:精美Fusi ...

  6. Highcharts 本地导出图片和PDF asp.net mvc版

    啰嗦: 现在大家利用Highcharts开发时,有时候会遇到导出的功能问题,但是highcharts默认是链接自己的服务器上进行处理,但是有时候我们会连不上他的服务器,所以我们要让他在我们的服务器上进 ...

  7. hightchart导出图片

    通常在使用highchart导出图片pdf等文件时,我们一般直接引入exporting.js即可 执行导出操作则会直接请求highchart服务器,执行生成图片等操作,然后下载到客户端: 但这一切的操 ...

  8. JXLS 2.4.0系列教程(六)番外篇——导出图片(完结)

    突然想起来有同学说过能不能导出图片,本来我是想说不懂的,后来我上官网查了查,还挺容易.我就简短的写一写怎么导出图片. 官方提供了导出图片标签: jx:image(lastCell="D10& ...

  9. 微信小程序 canvas导出图片模糊

    //保存到手机相册save:function () { wx.canvasToTempFilePath({ x: , y: , width: , //导出图片的宽 height: , //导出图片的高 ...

随机推荐

  1. PHP递归创建多级目录(一道面试题的解题过程)

    今天看到一道面试题,要写出一个可以创建多级目录的函数: 我的第一个感觉就是用递归创建,具体思路如下: function Directory($dir){ if(is_dir($dir) || @mkd ...

  2. Servlet/JSP-01 Servlet及其生命周期

    一.起步 1.新建一个类继承Servlet接口 public class HelloServlet implements Servlet { @Override public void destroy ...

  3. SSI

    一.简介 SSI(Server Side Includes)技术,是为WEB服务器提供的一套命令,在HTML文档中通过注释行调用的命令或指针,就可以将文本.图形或应用程序信息包含到网页中. SSI具备 ...

  4. Linux命令的类型

    1.内建命令: 由shell程序自带的命令,最常见的有cd.pwd等. 使用type命令即可查看命令属于哪种,比如: #type cd cd is a shell builtin ————>看到 ...

  5. C++ 基本知识

    无论父类与子类的析构函数是否是virutal,子类的析构函数都会调用父类的析构函数 调用构造函数是与构造函数顺序相反,先子类后基类,否则如果基类先析构,子类的有些资源已经不存在了,会出错. 在C++中 ...

  6. 边工作边刷题:70天一遍leetcode: day 85-4

    Walls and Gates 要点: 同样是bfs,这题可以用渲染的方法(即全部gate进初始q),注意区别Shortest Distance from All Buildings.那道题要找到某个 ...

  7. HDU 2082 找单词 --生成函数

    跟上题是一个思路:http://www.cnblogs.com/whatbeg/p/3728545.html 只不过是上一题的扩展. 代码: #include <iostream> #in ...

  8. HDU 3487 Play with Chain 【Splay】

    1-n的序列,有两种操作: 1,将一段区间翻转 2,将一段区间切下来放到剩余序列的第C个数后 采用延迟更新的方法维护区间的翻转,并维护一个size域. 添加一个最大点和一个最小点,防止出界 翻转时,将 ...

  9. nginx 一二事(2) - 创建虚拟静态服务器

    一.什么是nginx 是一个C语言开发的HTTP反向代理服务器,性能非常高 一个俄罗斯的哥们开发的,官方提供的测试性能能够达到5W的并发,我的天呐~,实际测试差不多是2W,而淘宝的牛人可以优化到200 ...

  10. 注册其它地区Apple ID

    不同地区Apple Id需求 iPhone 最近换上了iPhone,想要下载其它国家地区的游戏,需要登录该国的Apple Id才能在itunes里下载. 下面记录一下我注册日本地区的Apple Id过 ...