图像处理库Pillow
前言
原有的PIL
库不支持Python3,而且更新缓慢。所以有志愿者在PIL
的基础上创建了一个分支版本,命名为Pillow
,Pillow
目前最新支持到python3.6,更新活跃,并且增添了许多新的特性。
pillow使用
安装: pip install pillow # PIL和Pillow不能共存.
导入: from PIL import Image
简单使用
from PIL import Image
im = Image.open("asd.jpg") # 创建对象.
im.show() # 显示图片.
im.close() # 关闭对象.
方法与属性
im = Image.open('img') # 创建对象.
im.show() # 显示图片.
im.save('img') # 保存图片.
im.close() # 关闭对象.
im.filename # 文件名.
im.format # 图像文件格式.
im.mode # 图像的模式,一般是, '1', 'L', 'RGB', 'CMYK'等.
im.size # 图像的尺寸.
im.width # 图像的宽度.
im.height # 图像的高度.
im.info # 图像的一些信息.
new_im = Image.new('RGB', (200, 100), 'red') # 3个args
# 第一个是mode, 第二个是size, 第三个是color
# 裁剪图片.
im.crop((100, 100, 200, 200)) # arg为一个元祖, (x1, y1, x2, y2)表示图像中的一块区域.
# x2, y2为开区间.
# 复制图片.
copy_im = im.copy()
# 粘贴图片.
im.paste(图片对象, 放置点) # eg: im.paste(croped_im, (0, 0))即放在在im图像的原点.
# 调整size.
re_im = im.resize((width, height))
# 旋转图片. 默认会把超出size的部分去除掉.
ro_im = im.rotate(90) # 旋转90度, 如果加入expand=True参数,就可以将图片边角保存住。
# 翻转图片.
tr1_im = im.transpose(Image.FLIP_LEFT_RIGHT) # 水平翻转.
tr2_im = im.transpose(Image.FLIP_TOP_BOTTOM) # 垂直翻转.
# 获取图片的某个pixel value.
im.getpixel((width, height))
# 通过通道分割图片.
R, G, B = im.split()
# 获取通道.
R = im.getchannel('R')
# 加载图片的全部数据.
pixelData = im.load()
pixelData[x, y] = 255 # 改变图片某个pixel的值