图像的处理

from tkinter import *
from PIL import Image,ImageTk

#创建主窗口
win=Tk()
win.title(string="余佳慧真好看")

imgfile1=Image.open(r"C:\Users\hjw\Desktop\Python—PyCharm\1.1.jpg")
imgfile2=Image.open(r"C:\Users\hjw\Desktop\Python—PyCharm\1.5.jpg")
imgfile3=Image.open(r"C:\Users\hjw\Desktop\Python—PyCharm\1.3.jpg")
imgfile4=Image.open(r"C:\Users\hjw\Desktop\Python—PyCharm\1.4.jpg")

img1=ImageTk.PhotoImage(imgfile1)
img2=ImageTk.PhotoImage(imgfile2)
img3=ImageTk.PhotoImage(imgfile3)
img4=ImageTk.PhotoImage(imgfile4)

canvas=Canvas(win,width=400,height=400)
canvas.create_image(50,40,image=img1,anchor=NW)
canvas.create_image(200,40,image=img2,anchor=NW)
canvas.create_image(50,240,image=img3,anchor=NW)
canvas.create_image(200,240,image=img4,anchor=NW)
canvas.pack(fill=BOTH,expand=1)

win.mainloop()

在这里插入图片描述

复制与粘贴图像

可使用如下几个方法:

copy()#复制该图像
paste(image,box)#粘贴该图像
crop(box)#剪下该图像中的一个矩形方块
resize((width,height))#改变图像大小
rotate(angle)#旋转一定角度
transpose(method)#颠倒图像

box是该图像中的一个矩形方块,是一个含有四个元素的元组:(left,top,right,bottom),表示矩阵左上角与右下角的坐标。如果是paste()方法,box也可以是一个含有两个元素的元组:((left,top),(right,bottom))。

import tkinter
from PIL import Image,ImageTk

#创建主窗口
win=tkinter.Tk()
win.title(string="余佳慧大垃圾")

#打开图像文件
path="C:\\Users\\hjw\\Desktop\\Python—PyCharm\\"
imgFile=Image.open(path+"1.1(1).jpg")
imgFile1=Image.open(path+"1.1(1).jpg")
#创建一个图像实例变量
img1=ImageTk.PhotoImage(imgFile)

#读取文件的宽与高
width,height=imgFile.size
print(width,height)
#设置剪裁的宽与高
box1=(0,0,width,int(height/2))

#将图像的上半部分剪下
part=imgFile1.crop(box1)
part=part.rotate(45)
#将图像的上半部分粘贴在上面
imgFile1.paste(part,box1)
imgFile1=imgFile1.resize((int(width/2),int(height/2)))

#创建第二个实例变量
img2=ImageTk.PhotoImage(imgFile1)

#创建Lable控件,显示图像
label1=tkinter.Label(win,width=1000,height=1000,image=img1,borderwidth=1)
label2=tkinter.Label(win,width=1000,height=1000,image=img2,borderwidth=1)
label1.pack(side=tkinter.LEFT)
label2.pack(side=tkinter.LEFT)

win.mainloop()




在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值