pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)

一、Image的format、size、mode、show

#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")print(im.format,im.size,im.mode)#JPEG (2287, 1080) RGB'''format 指文件格式、size 文件大小 tuple(width,heigh)mode L 黑白,RGB普通RGB,CMYK 预压缩图片'''#显示图片,非Image本身显示图片,而是系统借助第三方图片程序显示,若系统没有安装,则显示失败im.show()
pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第1张图片

im.show()显示的图片

二、Image的保存

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")#如果有文件扩展名,Image自动识别保存图片格式#im.save("new_background.jpg")#如果没有文件扩展名,需要指定文件扩展名im.save("new_background","JPEG")

三、复制、粘贴、合并图层

选取内容框

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")#box的坐标 官方的说法left, upper, right, lower,转换一下就是#起始点列column,起始行row,生成的宽度(列column),生成的高度(行row)box=(100,200,400,400)#获取赋值的矩形region=im.crop(box)print(region)#region.show()
pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第2张图片

region.show()显示的图片 300x200的图片

#转动图片,以便看到效果region = region.transpose(Image.ROTATE_180)im.paste(region, box)im.show()
pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第3张图片

图片选择的不是和合适,效果不是很明显

crop的懒加载

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")def roll(image, delta):    """图片的转场特效,本例中使用1图片,左右转场"""    xsize, ysize = image.size    delta = delta % xsize    if delta == 0: return image  #crop方法不会立即执行    part1 = image.crop((0, 0, delta, ysize))    part2 = image.crop((delta, 0, xsize, ysize))   #如遇到 load 方法crop才会加载,否则crop方法到paste方法时才会执行    part1.load()    part2.load()    image.paste(part2, (0, 0, xsize-delta, ysize))    image.paste(part1, (xsize-delta, 0, xsize, ysize))    return imagefor i in range(100):    newimg=roll(im,i)    newimg.show()

crop方法,不会立即执行,

pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第4张图片

图片转场特效使用的实例图片

图层的分离与合并 splite、merge

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")r, g, b = im.split()print(r)#r.show()r.save("r.jpg")g.show()g.save("g.jpg")b.show()b.save("b.jpg")#不同顺序的结果im = Image.merge("RGB", (b, g, r))im.show()im.save("bgr.jpg")#不同顺序的结果im = Image.merge("RGB", (b, r, g))im.show()im.save("brg.jpg")
pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第5张图片

r图层显示效果

pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第6张图片

g图层显示效果

pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第7张图片

b图层显示效果

pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第8张图片

bgr图层显示效果

pil保存图片黑色_python PIL Image 图片处理的基础使用方法Tutorial (一)_第9张图片

brg图层显示效果

四、transposing(转换)图片

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")#更改图片大小,注意是返回值形式(必须把resize之后的对象赋值),不是引用形式,#resize(width,heigh)im = im.resize((64, 128))im.show()im.save("resize128.jpg")#逆时针旋转 度为正im = im.rotate(45) im.save("rotate45.jpg")#transpose 参数的还有#Image.FLIP_TOP_BOTTOM#Image.ROTATE_90#Image.ROTATE_180#Image.ROTATE_270#...im = im.transpose(Image.FLIP_LEFT_RIGHT)im.save("transpose.jpg")
960e49d0791674f36034672880fcc03f.png

im.resize((64, 128))的效果

1df24929b6295e7a9be729fc2e434836.png

im.rotate(45) 的效果

ec5aa9f915885cbd1fddc167e91aa035.png

im.transpose(Image.FLIP_LEFT_RIGHT)左右变坏的效果

在rotate中,默认参数,会有黑色区域,可以通过rotate的命名参数fillcolor=(255,255,255)

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")#更改图片大小,注意是返回值形式(必须把resize之后的对象赋值),不是引用形式,#resize(width,heigh)im = im.resize((64, 128))#逆时针旋转 度为正,(255,255,255)为想要留出的颜色im = im.rotate(45,fillcolor=(255,255,255)) im.save("rotate45.jpg")
5cfe34ac7761429a250978dd56503c1a.png

fillcolor=(255,255,255)显示的效果

未完待续...

本例参考网站

https://pillow.readthedocs.io/en/5.2.x/handbook/tutorial.html

#科技青年# #423头条知识节#

你可能感兴趣的:(pil保存图片黑色)