文档章节

python 图片处理 窗体

莲花子
 莲花子
发布于 2017/04/27 17:07
字数 925
阅读 61
收藏 0

 

#coding:utf-8
##重庆话语科技---运维部--莲花子
##python/shell
##群号:35666534   欢迎你

import multiprocessing
import _thread,time,re,sys,fnmatch
import os,urllib,random,threading,shutil
from tkinter import *
from glob import glob
sys.path.append("/Users/lianhuazi/Desktop")
from shuiyin import *


def T1msg(envent):
	E7.insert(INSERT,"%s\n"%envent)

def init():
	E1.insert(INSERT,'*.jpg')
	E2.insert(INSERT,50)
	E3.insert(INSERT,50)
	E4.insert(INSERT,50)
	E5.insert(INSERT,50)
	E6.insert(INSERT,"我是进度条")
def clearentry(envent):
	E2.delete(0.0,END)

def clearentry5(envent):
	E5.delete(0,END)

def clearentry1(envent):
	global files
	files=None
	E1.delete(0,END)

def scandir():
	filesbox=[]
	for root, dirs, files in os.walk("/Users/lianhuazi/Desktop/img/"):
		for f in files:
			print(f)
			filesbox.append(os.path.join(root,f))
	return filesbox

def msg(event):
	E6.delete(0,END)
	E6.insert(INSERT,event)
	
def fenxi(Image_type=None,w=None,h=None,cut=None,check=None):
	if check == 1:
		cmd="int(j[0])+int(w) >img_wmax[1][0]"
		if not os.path.exists("one"):
			os.mkdir("one")
			os.mkdir("two")
		sort_size={}
		name=glob(Image_type)
		for i in name:
			x,y,z=xxyy(i)
			sort_size.update({x:[y,z]})
		img_wmax=max(sort_size.items(),key=lambda p:(p[1][0]))
		img_wmin=min(sort_size.items(),key=lambda p:(p[1][0]))
		img_hmax=max(sort_size.items(),key=lambda p:(p[1][1]))
		img_hmin=min(sort_size.items(),key=lambda p:(p[1][1]))
		for i,j in sort_size.items():
			if eval(cmd):
				#pass
				shutil.move(i,"one")
				#print("one w:%s %s h:%s %s "%(int(j[0])+int(w),img_wmax[1][0],int(j[1])+int(h),img_hmax[1][1]))
			else:
				#pass
				shutil.move(i,"two")
				#print("two w:%s %s h:%s %s "%(int(j[0])+int(w),img_wmax[1][0],int(j[1])+int(h),img_hmax[1][1]))
	elif check == 2 :
		cmd="int(j[1])+int(h) >img_hmax[1][1]"
		if not os.path.exists("one"):
			os.mkdir("one")
			os.mkdir("two")
		sort_size={}
		name=glob(Image_type)
		for i in name:
			x,y,z=xxyy(i)
			sort_size.update({x:[y,z]})
		img_wmax=max(sort_size.items(),key=lambda p:(p[1][0]))
		img_wmin=min(sort_size.items(),key=lambda p:(p[1][0]))
		img_hmax=max(sort_size.items(),key=lambda p:(p[1][1]))
		img_hmin=min(sort_size.items(),key=lambda p:(p[1][1]))
		for i,j in sort_size.items():
			if eval(cmd):
				#pass
				shutil.move(i,"one")
				#print("one w:%s %s h:%s %s "%(int(j[0])+int(w),img_wmax[1][0],int(j[1])+int(h),img_hmax[1][1]))
			else:
				#pass
				shutil.move(i,"two")
				#print("two w:%s %s h:%s %s "%(int(j[0])+int(w),img_wmax[1][0],int(j[1])+int(h),img_hmax[1][1]))
	elif check == 3:
		files=scandir()	
		for i in files:
			if fnmatch.fnmatch(i,Image_type):
				try:
					c=shuiyin(i,'',i)
					c.img_b_cut(pix=int(cut))
					msg(i.split("/")[-1])
				except:
					T1msg(i)
		msg("over")
	elif check == 4:
		files=scandir()		
		for i in files:
			if fnmatch.fnmatch(i,Image_type):
				try:
					c=shuiyin(i,'',i)
					c.img_t_cut(pix=int(cut))
					msg(i.split("/")[-1])
				except:
					T1msg(i)
		msg("over")
	elif check == 5:
		files=scandir()
		for i in files:
			if fnmatch.fnmatch(i,Image_type):
				try:
					c=shuiyin(i,'',i)
					c.draw_transparent_text()
					c.resize()
					msg(i.split("/")[-1])
				except:
					T1msg(i)
		msg("over")
	elif check == 6:
		files=scandir()
		for i in files:
			if not re.findall(r"\.(jpg|jpeg)$",i):
				os.remove(i)
				msg(i.split("/")[-1])
		msg("over")
	elif check == 7:
		files=scandir()
		for i in files:
			if fnmatch.fnmatch(i,Image_type):
				os.rename(i,"%s.jpg"%i)
				msg(i.split("/")[-1])
		msg("over")
def xxyy(name):
	from PIL import Image
	fp = open(name,'rb')
	im = Image.open(fp)
	fp.close()
	x,y = im.size
	return(name,x,y)

mytop = Tk()

top=Frame()

top.pack(expand=YES,anchor="w")
v = IntVar()
v.set(1)
L1 = Label(top, text="图片扩展名:")
#L2 = Label(top, text="width:")
#L3 = Label(top, text="Hight:")
L2=Radiobutton(top, text="根据宽分类:", variable=v, value=1)
L3=Radiobutton(top, text="根据高分类:", variable=v, value=2)
L4=Radiobutton(top, text="切底部像素", variable=v, value=3)
L5=Radiobutton(top, text="切顶部像素", variable=v, value=4)
L6=Radiobutton(top, text="调图片大小", variable=v, value=5)
L7=Radiobutton(top, text="删除不要的", variable=v, value=6)
L8=Radiobutton(top, text="批量改名字", variable=v, value=7)

L1.grid(row=0, column=1)
L2.grid(row=1, column=1)
L3.grid(row=2, column=1)
L4.grid(row=3, column=1)
L5.grid(row=4, column=1)
L6.grid(row=5, column=1)
L7.grid(row=6, column=1)
L8.grid(row=7, column=1)

E1 = Entry(top, bd =3,width=10)
E1.grid(row=0, column=2)
E1.bind('<Double-Button>',clearentry1)

E2 = Entry(top, bd =3,width=10)
E2.grid(row=1, column=2)
E2.bind('<Double-Button>',clearentry1)

E3 = Entry(top, bd =3,width=10)
E3.grid(row=2, column=2)
E3.bind('<Double-Button>',clearentry1)

E4 = Entry(top, bd =3,width=10)
E4.grid(row=3, column=2)
E4.bind('<Double-Button>',clearentry1)

E5 = Entry(top, bd =3,width=10)
E5.grid(row=4, column=2)

E6 = Entry(top, bd =3,width=10)
E6.grid(row=5, column=2)

E7 = Text(top, bd =3,width=50,height=10)
E7.grid(row=7, column=2)

B = Button(top,text="go fuck",command=lambda:_thread.start_new_thread(fenxi,(E1.get(),E2.get(),E3.get(),E4.get(),v.get())))
B.grid(row=0, column=3)
init()
mytop.mainloop()

 

© 著作权归作者所有

莲花子
粉丝 1
博文 13
码字总数 4521
作品 0
渝中
系统管理员
私信 提问
Tkinter-Python的GUI包初体验

Python的GUI包有很多,easyGUI可能更加适合新手,但是Tkinter包作为一个官方自带的包,功能强大,也比较易于上手。本文将对Tkinter的使用有一个初步的讲解。 下面是Python官网关于Tkinter的介...

cometeme
2017/11/18
174
0
Ubuntu 14.04下搭建Python3.4 + PyQt5.4.0 + Eric6.0开发平台

简要说明:QT是一个跨平台界面库和开发工具集,PyQt是其Python封装模块,其封装采用Sip完成(可以让C++库直接在Python中调用),Eric是基于Python的一个代码编辑器。 引言 找了很多Python GU...

openthings
2015/01/22
3.1K
3
Ubuntu 14.04下搭建Python3.4 + PyQt5.3.2 + Eric6.0开发平台

Ubuntu 14.04下搭建Python3.4 + PyQt5.3.2 + Eric6.0开发平台 分类: Linux Ubuntu Oracle 2014-10-14 14:49 3613人阅读 评论(13) 收藏 举报 UbuntuPythonSIPPyQt5Eric6 目录(?)[+] 引言 找了......

Sophia_tj
2015/02/28
565
0
Python图像处理之图片验证码识别

  在上一篇博客Python图像处理之图片文字识别(OCR)中我们介绍了在Python中如何利用Tesseract软件来识别图片中的英文与中文,本文将具体介绍如何在Python中利用Tesseract软件来识别验证码...

jclian91
2018/06/10
0
0
Python破解验证码技术,识别率高达百分之八十!

本文将具体介绍如何利用Python的图像处理模块pillow和OCR模块pytesseract来识别上述验证码(数字加字母)。 我们识别上述验证码的算法过程如下: 将原图像进行灰度处理,转化为灰度图像; 获...

妄心xyx
2019/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Hadoop入门

概述 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文...

阿dai学长
37分钟前
34
0
Go Web 编程之 数据库

概述 数据库用来存储数据。只要不是玩具项目,每个项目都需要用到数据库。现在用的最多的还是 MySQL,PostgreSQL的使用也在快速增长中。 在 Web 开发中,数据库也是必须的。本文将介绍如何在...

darjunlee
今天
79
0
spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
92
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
626
6
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部