zoukankan      html  css  js  c++  java
  • 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")

    原图:

    每一帧:

     

  • 相关阅读:
    怎样把echarts图表做成响应式的
    检测IE浏览器兼容Edge模式及IE11
    封装微信jssdk自定义分享代码
    C# json字符串 转换成数组、集合、相应对象 sansan
    ObjectC 正确使用内存的几条法则 sansan
    c# 利用反射设置属性值 sansan
    ie6不能识别option标签的selected属性解决方案 sansan
    sql server 2005/2008 设置 sql身份验证 和 sa空密码(像sql2000一样使用)(转载) sansan
    SqlServer 日期时间格式转换 sansan
    C#获取文件大小 sansan
  • 原文地址:https://www.cnblogs.com/DXL123/p/10685207.html
Copyright © 2011-2022 走看看