from PIL import Image as Im import tkinter as tk from extra import wlw from tkinter.filedialog import askopenfilename import tkinter.messagebox import tkinter.ttk import tkinter.messagebox from PIL import ImageDraw from PIL import ImageFont from PIL import ImageEnhance class picture(object): """description of class""" # 打开图像调用 def open_pic(self, address): self.pic_get = Im.open(address).convert('RGBA') wid, hei = self.pic_get.size if wid > 600 or hei > 400: if tk.messagebox.askokcancel('提示', '图片可能过大,是否压缩?'): needShow_pic = self.openResize() return needShow_pic return self.pic_get else: return self.pic_get # 打开图像时的图像压缩展示 def openResize(self): w, h = self.pic_get.size w_hope = 500 h_hope = 300 f1 = 1.0 * w_hope / w f2 = 1.0 * h_hope / h factor = min([f1, f2]) width = int(w * factor) height = int(h * factor) pic_show = self.pic_get.resize((width, height)) return pic_show # 截图处理 def Cutpic(self, pic_preCut, p1, p2, p3, p4): cropped_pic = pic_preCut.crop((p1, p2, p3, p4)) # 截图 return cropped_pic # 尺寸大小变化 def changeResize(self, pic_reshow, newWidth, newHeight): reesizeNew_pic = pic_reshow.resize((newWidth, newHeight)) # 修改尺寸 # print('3') return reesizeNew_pic # 镜像左右 def MirrorPic_leftOrright(self, pic_mir_lr): Mirror_lrFinish = pic_mir_lr.transpose(Im.FLIP_LEFT_RIGHT) # 镜像左右 return Mirror_lrFinish # 镜像上下 def MirrorPic_topOrbuttom(self, pic_mir_tp): Mirror_tbFinish = pic_mir_tp.transpose(Im.FLIP_TOP_BOTTOM) # 镜像上下 return Mirror_tbFinish # 旋转 def rotatePic(self, pic_prerotate, rodegreee): rotateNew_pic = pic_prerotate.rotate(rodegreee, expand=True) return rotateNew_pic # 亮度 def brightPic(self, pic_prebright, n): pic_brighted = ImageEnhance.Brightness(pic_prebright).enhance(n) # 亮度 return pic_brighted # 色彩度 def colornPic(self, pic_preColor, n): pic_colored = ImageEnhance.Color(pic_preColor).enhance(n) # 色彩度 return pic_colored # 对比度 def constractPic(self, pic_preCon, n): enh_con = ImageEnhance.Contrast(pic_preCon) contrast = n pic_contrasted = enh_con.enhance(contrast) # 对比度 return pic_contrasted # 锐度调整 def sharpPic(self, pic_preSharp, n): pic_sharped = ImageEnhance.Sharpness(pic_preSharp).enhance(n) return pic_sharped