按照需要分别率长宽比导出图片(python 3)
效率提升的问题
之前朋友需要把大量的图片用分辨率进行区分查找,他说都是打开图片,然后用尺子在屏幕上量。。。。。。我也是瀑布汗。。。。花的点时间帮他写的小软件,解决这个蛋疼的问题
解决方案
本想用批处理解决,但是考虑到易用性,就用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)的更多相关文章
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
- .net 下新版highcharts本地导出图片bug处理
最近公司要用到highcharts这个插件来生成图表,所以我花了点时间研究了下. 现在最新的版本是3.0.2,这js插件居多优点就不比多说了,demo官网上也很详细.但是优点不爽的地方是,导出图片这个 ...
- Asp.net通过模板(.dot/Html)导出Word,同时导出图片
一.Office组件导出Word(服务器配置麻烦) 需要引用Office的DLL,在下文的附件中,不同的Offic版本用的不一样,虽然高级版本可以兼容低级的,不过,还是统一版本最好 贴上核心代码(转载 ...
- FusionCharts V3图表导出图片和PDF属性说明(转)
百闻不如一见,狠狠点击,快快下载:(演示文档有错误,不提供下载了.待新的演示文档出来.) 许多朋友说上面的DEMO用不了.fusioncharts官方的演示非常不错,就是来不及整理,各位大侠们可以研究 ...
- FusionChart 导出图片 功能实现(转载)
FusionChart 导出图片 功能实现(转载) http://www.cnblogs.com/jiagoushi/archive/2013/02/05/2893468.html 题目:精美Fusi ...
- Highcharts 本地导出图片和PDF asp.net mvc版
啰嗦: 现在大家利用Highcharts开发时,有时候会遇到导出的功能问题,但是highcharts默认是链接自己的服务器上进行处理,但是有时候我们会连不上他的服务器,所以我们要让他在我们的服务器上进 ...
- hightchart导出图片
通常在使用highchart导出图片pdf等文件时,我们一般直接引入exporting.js即可 执行导出操作则会直接请求highchart服务器,执行生成图片等操作,然后下载到客户端: 但这一切的操 ...
- JXLS 2.4.0系列教程(六)番外篇——导出图片(完结)
突然想起来有同学说过能不能导出图片,本来我是想说不懂的,后来我上官网查了查,还挺容易.我就简短的写一写怎么导出图片. 官方提供了导出图片标签: jx:image(lastCell="D10& ...
- 微信小程序 canvas导出图片模糊
//保存到手机相册save:function () { wx.canvasToTempFilePath({ x: , y: , width: , //导出图片的宽 height: , //导出图片的高 ...
随机推荐
- PHP正则中的捕获组与非捕获组
今天遇到一个正则匹配的问题,忽然翻到有捕获组的概念,手册上也是一略而过,百度时无意翻到C#和Java中有对正则捕获组的特殊用法,搜索关键词有PHP时竟然没有相关内容,自己试了一下,发现在PHP中也是可 ...
- ASN.1(抽象语法标记)
一.简介 ASN.1是一种对分布式计算机系统间交换的数据消息进行抽象描述的规范化语言. 二.教程 http://www.epubit.com.cn/book/onlinechapter/14877
- Begin to record my bologs....
after work for almost two years, I have realize the truth notes can help a lot for us. avoiding my l ...
- nagios 自定义插件demo
#!/bin/bash loadavg=$( uptime | awk -F: '{print $4}' | xargs ) load1int=$( ) load5int=$( ) load15int ...
- Ajax与用户交互的存储格式JSON
数据存储是JavaScript的核心功能,这是一个在学习前期的一个容易让人迷惑的问题.它并不是那种像页面滑动.幻灯片展示.淡入淡出等吸引人眼球的特效.适当的存放好数据,就有利于我们组织起结构,又能使应 ...
- docker containerd shim分析
// containerd-shim is a small shim that sits in front of a runtime implementation that allows it to ...
- 怎样用好ZBrush中的PaintStop插件
PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...
- 安装docker1.10
1.安装 关闭 /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can ...
- Remote Displayer for Android
应用截图: 作者:sunrain_hjb QQ:2157825357 Email:sunrain_hjb@aliyun.com 版本:1.0.188 ...
- 常用中文字体 Unicode 编码
各大网站的字体选择 网站 字体 腾讯 font: 12px "宋体","Arial Narrow",HELVETICA; 淘宝 font: 12px/1.5 t ...