PIL库的总结及运用

 PIL库的总结:(以代码形式)

#date: 2018/11/15

from PIL import Image,ImageFilter,ImageDraw,ImageFont  #####除了缩略图的方法,其他方法都是返回值,需要变量来接收


img = Image.open('2.jpg')
#img.show()   #展示图片

# print(img.size[0],img.size[1])    #在图片中添加文字
# draw = ImageDraw.Draw(img)
# ttFont = ImageFont.truetype ("C:/Users/admin/Desktop/文件/微信爬虫/simhei.ttf", 60)
# draw.text((img.size[0]/2,img.size[1]/2),text='你好',font=ttFont,fill=(255,0,0))
# img.show()


# new_image = img.resize((1080,800),resample = 4)    #改变图片大小, 参数含义,默认NEAREST最近邻(分割常用),分类常用BILINEAR双线性,BICUBIC立方
# new_image.show()   #展示改变后的图片

# im = Image.new('RGB',(128,128),color=700)  #新建一张大小为128*128的图片,color为颜色参数(默认为黑色)
# im.show()

# img_1 = img.convert('L')    #将图片改变为灰色,参数'L','F','I'都是灰色,一般用L
# img_2 = img.convert('1')    #参数 1 也是灰度,会加模糊网格滤镜
# img_2.show()
# img_1.show()

# img.thumbnail((150,130))  #缩略图,与resize功能类似      重要!@resize需要重新定义新图,thumbnail不用
# img.show()

# img.thumbnail((640,400))    # rotate 逆时针改变图方向
# im = img.rotate(315)
# im.show()

#img_new = img.filter(ImageFilter.BLUR)     #使图片变模糊
#img_new = img.filter(ImageFilter.DETAIL)    #使图片细节更突出
#img_new = img.filter(ImageFilter.CONTOUR)      #使图片只有轮廓
#img_new = img.filter(ImageFilter.EDGE_ENHANCE)   #使图像整体颜色更深  有点油画的感觉
#img_new = img.filter(ImageFilter.EDGE_ENHANCE_MORE)  #上一个加强版
#img_new = img.filter(ImageFilter.EMBOSS)   #使图片石雕化,就是石膏一样的图片
#img_new = img.filter(ImageFilter.FIND_EDGES)    #使图片黑色化,只剩轮廓
#img_new = img.filter(ImageFilter.SMOOTH_MORE)  #使图片平滑
#img_new.show()

 缩略图代码:

from PIL import Image
img = Image.open('D:\\莲花.jpg')
img = img.resize((100, 128), Image.ANTIALIAS)
img.save('莲花_small.jpg')
 

 

此代码将缩略图存放在与程序同一级目录

原图:

 

缩略图:

 图片颜色处理:

from PIL import Image
im= Image.open('D:\\莲花.jpg')
r,g,b=im.split()
om = Image.merge("RGB",(g,b,r))#修改颜色
om.save('莲花_color.jpg')
 

处理后:

 

轮廓,浮雕,锐化等

处理代码:

from PIL import Image
from PIL import ImageFilter
im= Image.open('D:\\莲花.jpg')
om = im.filter(ImageFilter.CONTOUR)#轮廓处理
#om = im.filter(ImageFilter.EMBOSS)#浮雕处理
#om = im.filter(ImageFilter.SHARPEN)#锐化处理
om.save('莲花_contour.jpg') 
 

 

轮廓处理后:

 

 

浮雕处理后:

 

 锐度处理后:

 

提取GIF图的每一帧代码:

from PIL import Image
im= Image.open('D:\\123.gif')
try:
    im.save('123_{:02d}.png'.format(im.tell()))
    while True:
        im.seek(im.tell()+1)
        im.save('123_{:02d}.png'.format(im.tell()))
except:
    print("over")

原图:

 

每一帧:

 

 

 

 

posted @ 2019-04-10 18:20  呆。  阅读(772)  评论(0编辑  收藏  举报