python 图像处理库 pillow
安装
pip install pillow
使用
导入
from PIL import pillow
读取图像
picture = Image.open('test.jpg')
新建图像
picture = Image.new('RGB', (200, 200), 'red')
第一个参数是 mode 即颜色空间模式, 第二个参数指定了图像的分辨率(宽 x 高), 第三个参数是颜色.
可以直接填入常用颜色的名称. 如'red'.
也可以填入十六进制表示的颜色, 如 #FF0000 表示红色.
还能传入元组, 比如 (255, 0, 0, 255) 或者 (255, 0, 0) 表示红色.
保存图像
picture.save('test.jpg')
图像坐标
(左, 顶, 右, 底)
常用属性
- # 文件名
- print(image.filename)
- # 文件格式
- print(image.format)
- # 文件模式
- print(image.mode)
- # 文件大小
- print(image.size)
- # 文件宽度
- print(image.width)
- # 文件高度
- print(image.height)
- # 文件信息
- print(image.info)
常用方法
- # 剪切
- croped_im = image.crop((0, 0, 200, 200))
- croped_im.save('14.jpg')
- # 复制
- copy_im = croped_im.copy()
- copy_im.save('13.jpg')
- # 粘贴
- croped_im = image.crop((0, 0, 300, 300))
- croped_im.show()
- image.paste(croped_im, (100, 100))
- image.save('12.jpg')
- # 调整大小
- resized_im = image.resize((683, 728))
- resized_im.show()
- # 调整大小,(制造缩略图)
- w, h = image.size
- image.thumbnail((w//2, h//2))
- image.show()
- # 旋转图像
- image = image.rotate(45)
- image.show()
- image = image.rotate(45, expand=100)
- image.show()
- # 翻转图像
- image = image.transpose(Image.FLIP_LEFT_RIGHT)
- image.show()
- image = image.transpose(Image.FLIP_TOP_BOTTOM)
- image.show()
- # 获取图片通道名称
- image = image.getbands()
- print(image)
- # 通过通道切割图片
- R, G, B = image.split()
- R.show()
- G.show()
- B.show()
- print((R, G, B))
- # 获取单个通道的图片
- R = image.getchannel('R')
- R.show()
- # 模式转化
- image = image.convert('L')
- image.show()
- # 获取单个像素值
- image = image.getpixel((100,100))
- print(image)
- # 加载图片全部数据
- pixdata = image.load()
- pixdata[1,1] = 255, 255, 255
- image.show()
- print(pixdata)
- print(pixdata[0,0])
- print(type(pixdata[0,1]))
- print([i for x in range(1) for y in range(1) for i in pixdata[x, y]])
- # 获取所有像素内容
- image = image.getdata()
- image = image.getdata(band=0)
- image = image.getdata(band=1)
- image = image.getdata(band=2)
- print(image)
- print(list(image)[0])
- # 关闭图片
- image.show()
- image.close()
来源: http://www.bubuko.com/infodetail-3281376.html