You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.8 KiB
91 lines
2.8 KiB
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
|
|
|
|
|
|
|