简单的Pillow

    安装

    Pillow和PIL不可以同时存在于系统环境中,大于等于1.0小于2.1.0的Pillow版本不支持import Image,请使用from PIL import Image;大于等于2.1.0的,请使用from PIL Image import core as imageing。

    Pillow2.0.0以下的版本支持Python2.4到2.7的版本,2.00<=Pillow<4.0.0的版本支持Python2.6,2.7,3.2-3.5的版本;4.0.0<=Pliiow<5.0.0的版本支持Python2.7,3.3-3.6的版本;Pillow>=5.0.0的版本支持Python2.7,3.4,3.5,3.6的版本。

    Pillow安装,直接通过在CMD中通过pip install pillow,其他一些与安装配置有关的相关问题请网上查阅。


    函数


    利用Image模块中的open()函数进行图像加载:

    from PIL import Image
    im=Image.open("1.jpg")
    from __future__ import print_function
    print(im.format,im.size,im.mode)

    通过format表示图像的来源,size表示图像的长、宽,mode定义了图像中的数量、名称、像素类型和深度,常见的

    分为三种:灰度图像亮度L,真彩图像RGB,印前图像CMYK。

im.show()

    显示载入的图像

 

    通过Image中的open和save分别对图像进行读写。

    将文件转换成JPEG

from __future__ import print_function
import os,sys
from PIL import Image

for infile in sys.argv[1:]:
    f,e=os.path.splitext(infile)
    outfile=f+".jpg"
    if infile !=outfile:
        try:
            Image.open(infile).save(outfile)
        except IOError:
            print("cannot convert",infile)

    创建JPEG缩略图

 
from __future__ import print_function
import os,sys
from PIL import Image
size=(128,128)
for infile in sys.argv[1:]:
    outfile=os.path.splitext(infile)[0]+".thumbnail"
    if infile !=outfile:
        try:
            im=Image.open(infile)
            im.thumbnail(size)
            im.save(outfile,"JPEG")
        except IOError:
            print("cannot create thumbbail for",infile)

    使用Image中的crop()函数进行矩形区域提取,box中的数字依次表示左上右下,提取出来的矩形是一个300*300的矩形

 box=(100,100,400,400)
 region=im.crop(box)

    对矩形进行处理,并还原

region=region.transpose(Image.rotate_180)
im.paste(region,box)
    图像滚动

    

def roll(image,delta):
    #roll an image sideways
    xsize,ysize=image.size
    delta=delta%xsize
    if delta==0:return image
    
    part1=image.crop((0,0,delta,ysize))
    part2=image.crop((delta,0,xsize,ysize))
    part1.load()
    part2.load()
    image.paste(part2,(0,0,xsize-delta,ysize))
    image.paste(part1,(xsize-delta,0,xsize,ysize))
    
    return image

 使用

    r, g, b = im.split()
    im = Image.merge("RGB", (b, g, r))
    使用函数rotate()和transpose()进行角度选择

    使用convert()进行"L"和"RGB"之间的模式转换test=im.convert("L")

    增强过滤器

    from PIL import ImageFilter

    out=im.filter(ImageFilter.DETATL)

    点操作

    out=im.point(lambda i: i*1.2)

    使用point()和paste()来选择性的修改图像,掩膜创造

    source=im.split()

    R,G,B=0,1,2

    mask=source[R].point(lambda i : i<100 and 255)

    out=source[G]point(lambda i : i * 0.7)

    source[G].paste(out,None,mask)

    im=Image.merge(im.mode,source)

    掩膜创造的语法

    imout=im.point(lambda i : expression and 255)

    图像增强

    from PIL import ImageEnhance

    enh=ImageEnhance.Contrast(im)

    enh.enhance(1.3).show("30% more contrast")

    使用seek()和tell()对FLI/FLC/GIF视频之间进行帧数移动

    from PIL import Image

    im=Image.open("animation.gif")

    im.seek(1)

try:

    while 1:

        im.seek(im.tell()+1)

except EOFError:

    pass


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值