您的位置:首页 > 编程语言 > Python开发

简单的Pillow

2018-03-06 14:54 99 查看
    安装
    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分别对图像进行读写。

    将文件转换成JPEGfrom __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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python pillow