PIL:Python图像处理类库常用命令
1、open()打开图片
from PIL import Image
pil_im = Image.open('empire.jpg')
"""open打开图片,pil_im 返回是一个PIL图像对象"""
2、convert()图像的颜色转换,L将图像装换为灰度图像
pil_im = Image.open('empire.jpg').convert('L')
3、save()保存图片
from PIL import Image
im = Image.open("E:\mywife.jpg")
im.save("E:\mywife.png") ## 将"E:\mywife.jpg"保存为"E:\mywife.png"
im = Image.open("E:\mywife.png") ##打开新的png图片
4、crop()从一副图中剪裁指定区域
box = (50,100,718,924)
region = im.crop(box)
print(region)
region.show()
5、使用.rotate(x)对图像进行旋转(x:图片逆时针旋转的角度)
region=region.rotate(90) #图像旋转,画布不旋转
region.show()
6、使用.transpose()对图片进行旋转
可传入的参数有:
Image.FLIP_LEFT_RIGHT #图片左右翻转
Image.FLIP_TOP_BOTTOM #图片上下翻转
# region = region.transpose(Image.FLIP_TOP_BOTTOM)
# region = region.transpose(Image.FLIP_LEFT_RIGHT)
# region = region.transpose(Image.ROTATE_90)
# region = region.transpose(Image.ROTATE_180)
region = region.transpose(Image.ROTATE_270)
region.show()
#以上方式画布均跟随旋转
7、使用.paste()对图片进行黏贴合并。粘贴矩形选区时必须保持尺寸一致
region = region.transpose(Image.FLIP_LEFT_RIGHT)
im.paste(region,box)
im.show()
8、resize((width,height))对图像进行大小变换(传入元组)
im = im.resize((400,600)) im.show()
9、thumbnail() 方法接受一个元组参数(该参数指定生成缩略图的大小),然后将图像转换成符合元组参数指定大小的缩略图。
pil_im.thumbnail((128,128))
10、 blend() 两张图片相加:
Image.blend(img1, img2, alpha) # 这里alpha表示img1和img2的比例参数
11、point() 点操作 。
im.point(function) #,这个function接受一个参数,且对图片中的每一个点执行这个函数 比如:out = im.point(lambda i : i*1.5)#对每个点进行50%的加强 。
12、图像黏贴(合并)
im.paste(region, box)#粘贴box大小的region到原先的图片对象中。
13、通道分离:
r,g,b = im.split()#分割成三个通道 ,此时r,g,b分别为三个图像对象。
14、通道合并:
im = Image.merge("RGB", (b, g, r))#将b,r两个通道进行翻转。
15、获取某个像素位置的值:
im.getpixel((4,4))
16、写某个像素位置的值:
img.putpixel((4,4),(255,0,0))
17、使用.filter()对图片进行滤镜处理
# image1 = image1.filter(ImageFilter.CONTOUR)
# image1 = image1.filter(ImageFilter.BLUR)
# image1 = image1.filter(ImageFilter.EDGE_ENHANCE)
image1 = image1.filter(ImageFilter.EDGE_ENHANCE_MORE)
image1.save("imgs/6.jpg")
image1.show()
18、 ImageGrab.grab() 实现抓屏
from PIL import ImageGrab
import time
time.sleep(5)
image1 = ImageGrab.grab() #可传入一个元组表示抓取屏幕的坐标
print(image1.size,image1.mode)
image1.save("imgs/6.jpg")
image1.show()