python PIL图像处理

新建图像

  1. # 三个参数分别代表图像的模式:常用的为RGB(3通道) 、RGBA(4通道为透明通道,0为完全透明, 256为不透明)
    # 第二个参数为图像的长宽参数
    # 第三个为默认的填充颜色,RGB时长度为3,RGBA是长度为4
    img =Image.new('mod',(width,height),(color1, color2, color3, color4))

打开图像

  1. # 打开已存在的图像,两个参数分别表示图像路径及模式
    img =Image.open('path','mode')

预览&保存

  1. # 加入到缓存中,并打开图片展示,常用于测试环境中
    img.show()
    # 保存图片
    img.save('path','mode')

修改图像参数

  1. # 修改图片大小
    img =img.resize((width,height))
    # 修改模式 常用的模式: RGB、RGBA、1(二值图)、L(灰度图),当转换为二值图时,默认将128以下的转为黑色,128以上的像素转换为白色,为满足多样化需求,可以使用自定义方法: img.point(table, 'model'),但是在使用自己的字典转换后的图片与使用模式'1'的差别很大,目前无解,随后有需要了再重新看这个地方
    img = img.convert('mode')

透明度处理

  1. # 透明度处理仅为RGBA模式才会有,如为非RGBA,则可进行转换
    img = img.convert('RGBA')
    # 获取alpha(透明度层图像),可以像普通图片一样修改相应的透明度
    img.split()[3]
    # 设置图片的透明图层,新增或替换透明图层,注意透明图层与原图像的大小要相同
    img.putalpha(alpha)

图像粘贴

  1. img =''
    # 可以将部分图片粘贴到指定位置,有三个参数,粘贴的内容,粘贴的位置:如果长度为2,则表示起始位置,如果长度为4,则表示起始与结束位置; mask:蒙板层,当img1的模式为RGB模式时,设置为None,如果为RGBA,即存在透明图层时,因为粘贴时无法将图片的透明图层复制过来,所以需要在这里手动指定透明图层
    img2.paste(img1,(x, y), mask=img.split()[3])

其它的操作

  1. # 获取指定位置的颜色
    img.getpixel((x, y))
    # 设置指定位置的颜色
    img.putpixel((x, y),(color1....))
    # 图片的旋转,常用的有三个参数:逆时针旋转的角度
    # 旋转过后的图片过滤器,默认的效果较差,可以指定另外几种类型
    # expand 偏转后是否改变长宽来显示所有内容
    img = img.rotate(angle, resample=NEAREST, expand=0)

基本上就这么多内容了,其它的随后用到时再补…………

原文地址:https://www.cnblogs.com/417xiaoliu/p/489a74064fea16d05cd482e7881b7d69.html