python图像处理——图片缩放与裁剪工具
图片缩放与裁剪工具利用画布技术可读取图片,按照像素对图片进行缩放操作,可选择图片裁剪区域或设定裁剪大小拖动选择裁剪区域对图片进行裁剪,可保存处理后的图片。
1.打开工具
2.点击选择文件,选择要处理的图片
3.设定缩放尺寸,宽度和高度,优先按照宽度进行比例缩放,若设置高度,则按照高度进行比例缩放
图片缩放时,窗口会根据图片大小进行自适应
4.裁剪图片,若不填写裁剪尺寸,点击选择区域,可通过鼠标拖动选择区域
选择的区域会红色虚框标识
5.点击裁剪则将裁剪图片,并自适应窗口
可通过缩放将图片进行放大
6.若设定裁剪尺寸,点击选择区域,会虚框显示区域,可通过鼠标拖动移动区域
7.若对选择的区域不满意,可进行刷新页面,重新设定选择
8.选择完成后可点击裁剪对图片进行裁剪
9.图片处理完成后,可点击保存文件,保存图片
1.图片缩放
def Resize(w, h, w_box, h_box, pil_image):
f1 = 1.0*w_box/w
f2 = 1.0*h_box/h
factor = min([f1, f2])
width = int(w*factor)
height = int(h*factor)
return pil_image.resize((width, height), Image.ANTIALIAS)
2.窗口和画布自适应
pil_im = Image.open(showFile) # 打开文件
w, h = pil_im.size # 获取图片大小
photo = ImageTk.PhotoImage(pil_im)
gw, gh = GmSize(w, h) # 图片与窗口大小对应函数
root.geometry(f"{gw}x{gh}") # 设置窗口大小
canvas.config(width=w, height=h) # 设置画布大小
canvas.create_image(w / 2, h / 2, image=photo) # 在画布上画图
3.选择区域虚线框
# 矩形框,由左上角点和右下角点坐标确定,dash为虚线
canvas.create_rectangle(rectangle[0], rectangle[1], rectangle[2], rectangle[3], outline="red", dash=(3, 3))
4.画布绑定鼠标点击、拖动事件
canvas.bind("" , Reset) # 绑定鼠标左键按下
canvas.bind("" , GetPoints) # 绑定鼠标拖动
canvas.bind("" , MouseUp) # 绑定鼠标左键松开
https://download.csdn.net/download/weixin_39151703/12116481