前:1.使用图片放在文件最后,需要的请自行下载
2.运行环境win10家庭版,已经安装好pillow库
一.学习总结
PIL库支持图像的储存,显示和处理,几乎能处理所有的图片格式,可以完成对图像的缩放,剪辑,叠加等等操作
大致分类:Image,ImageFilter, ImageEnhance
二.生成缩略图,改变颜色,获取轮廓,浮雕等操作
1.生成缩略图 使用函数 Image.thumbnail(size)
代码如下:
from PIL import Image
im = Image.open("鸟巢.jpg")
im.thumbnail((128,128))
im.save("鸟巢缩略图.jpg")
2.改变颜色 使用函数 Image.split() 提取RGB图像的每个颜色通道,返回图像副本 以及 Image.merge(mode,bands) 合并通道,其中mode表示色彩,bands表示新的色彩通道
代码如下:
from PIL import Image
im = Image.open("鸟巢.jpg")
r,g,b = im.split()
om = Image.merge("RGB",(b,g,r))
om.save("鸟巢改变颜色.jpg")
效果:
3.改变轮廓 使用函数 ImageFilter.CONTOUR 使用方式:Image.filter(ImageFilter.fuction)
代码如下:
from PIL import Image
from PIL import ImageFilter
im = Image.open("鸟巢.jpg")
om = im.filter(ImageFilter.CONTOUR)
om.save("鸟巢浮雕.jpg")
效果:
4.浮雕 使用函数 ImageFilter.EMBOSS
代码如下:
from PIL import Image
from PIL import ImageFilter
im = Image.open("鸟巢.jpg")
om = im.filter(ImageFilter.EMBOSS)
om.save("鸟巢浮雕.jpg")
效果:
4.提取GIF每一帧 使用函数 Image.seek(frame) 跳转并返回图像中的指定帧 以及 Image.tell() 返回当前帧的序号
代码如下:
from PIL import Image
im = Image.open('1.gif')
try:
im.save('picframe{:02d}.png'.format(im.tell()))
while True:
im.seek(im.tell()+1)
im.save('picframe{:02d}.png'.format(im.tell()))
except:
print("处理结束")
效果(图片太多,在此不一一展示)
三.增强图片的锐度,美白,磨皮
1.锐度 使用函数ImageEnhance.Sharpness(im)
代码如下:
from PIL import Image
from PIL import ImageEnhance
im = Image.open('鸟巢.jpg')
om = ImageEnhance.Sharpness(im)
om.enhance(20).save('鸟巢锐度.jpg')
效果如下
2.美白 使用函数
3.磨皮 使用函数
4.中文字符画 使用函数
四.几张图片生成一个gif图 使用函数
代码:
import imageio def create_gif(image_list, gif_name): frames = []
for image_name in image_list:
frames.append(imageio.imread(image_name))
# Save them as frames into a gif
imageio.mimsave(gif_name, frames, 'GIF', duration = 0.1) return def main():
image_list = ['001.jpg','002.jpg','003.jpg','004.jpg','005.jpg']
gif_name = 'created000_gif.gif'
create_gif(image_list, gif_name) if __name__ == "__main__":
main()
效果: