from PIL import Image,ImageFilter,ImageEnhance
#操作1
#读取图片*************************************
img = Image.open(“pic1.jpg”)
print(type(img),img)
#或者
fp = open(“file.jpg”, “rb”)
im = Image.open(fp)
#或者
import StringIO
img = Image.open(StringIO.StringIO(buffer))
#输出:
<class ‘PIL.JpegImagePlugin.JpegImageFile’> <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1200x675 at 0x2971208>
#调用默认图片查看工具展示图片**************
img.show()
#改变图片大小*********************************
w,h = img.size #返回一个元组
print(img.size)
img.thumbnail((w//2,h//2))
img.show()
或者out = img.resize((128, 128))#resize成128128像素大小。
#保存图片到当前工作目录***********************
img.save(“t1.jpg”,“jpeg”)
#旋转图片,以图片中心为原点,逆时针旋转***
img = img.rotate(90)
img.show()
#获取图片深度***********************
bands = img.getbands()
print(bands)
#灰度化**************************************
img = img.convert(“L”)
bands = img.getbands()
print(bands)
#获取指定像素坐标点的值*******************
pixes = img.getpixel((30,30))
print(pixes)
#返回像素直方图*****************************
pr = img.histogram()
print(type(pr),pr)
#图片粘贴*******************************
img2 = Image.open(“pic.jpg”)
img.paste(img2,(500,300))
img.show()
#把img2粘贴到img上
#滤波器************************************
img = img.filter(ImageFilter.EMBOSS)
img.show()
#在指定图片上拷贝指定区域***********************************************************
#设置拷贝区域
box = (100,100,200,200)
#将img图片上box区域的图片拷贝到region中
region = img.crop(box)
region = region.transpose(Image.ROTATE_180)
图片通道分离**********************************************************************
r,g,b = img.split()#分割成三个通道
img.show()
r.show()
g.show()
b.show()
#通道值互换,通道合并******************************************************
img = Image.merge(“RGB”, (b, g, r))#将b,r两个通道进行翻转。
#直接操作像素点
out = img.point(lambda i : i * 1.2)#注意这里用到一个匿名函数(那个可以把i的1.2倍返回的函数)
out.show()
python PIL的基本操作
最新推荐文章于 2024-01-04 11:19:02 发布