zoukankan      html  css  js  c++  java
  • python之PIL模块基础功能

    Image主要是打开图片后,对图片进行编辑,主要有以下一些常用功能:

    1、读取并显示图片:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    img.show()
    

    2、显示图片大小:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    print(img.size)

    3、把图片旋转40度并显示:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    img.rotate.show()
    

    4、显示图片名称(包含路径):

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    print(img.filename)
    

    5、图片缩小一倍(大概是这么算法):

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    img.thumbnail((img.size[0]/2,img.size[1]/2))
    

    6、图片的像素点的缩放:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    img_new = Image.eval(img,lambda x:x*2)
    img_new.show()

    7、图片合成或融合:

    from PIL import Image
    
    #img1和img2大小要一样,并且其一为透明的,否则只能看到一个图片 PIL.image.alpha_composite(img1,img2)
    #alpha表示透明度
    PIL.image.blend(im1,im2,alpha)
    PIL.Image.composite(im1,im2,mask)

    8、创建并保存图片:

    from PIL import Image
    
    #使用RGB模式创建一个黑色的图形(还有L和RGBA模式)
    img = Image.new('RGB',(x,y),(0,0,0))
    #L模式创建图形
    img = Image.new('L',(x,y),255)
    #RGBA模式创建图形
    img = Image.new('RGBA',(x,y),(0,0,0,255))
    img.show()
    img.save('img.png')
    #查看模式
    print(img.mode)

    9、将图片黑化(灰化):

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    img.convert("L").show()
    

    10、图片的复制:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    #这里也可以直接赋值
    #img1 = img img1 = img.copy()
    img1.show()

    11、获取对应坐标的像素:

    from PIL import Image
    
    img = Image.open("H:\salary.png",'r')
    print(img.getpixel(x,y))

    12、粘贴一个图片到另外一个图片上:

    from PIL import Image
    
    #俩个图片的mode要一致,不一致可以用convert转换 img1 = Image.open("H:\salary.png",'r')
    img2 = Image.open("H:\pig.png",'r')
    img1.paste(img2,(50,15))
    img1.show()

    13、在给定图片上划直线:

    from PIL import Image
    from PIL import ImageDraw img = Image.open("H:\salary.png",'r')
    draw = ImageDraw.Draw(img)
    #传入俩个元祖参数,第一个是直线的俩端点坐标,另外一个是RGB
    draw.line((22,43,99,11),(150,150,150))
    img.show()

    14、在给定图片上写文字:

    from PIL import Image
    from PIL import ImageDraw
    from PIL import ImageFont img = Image.open("H:\salary.png",'r')
    draw = ImageDraw.Draw(img)
    font = ImageFont.truetype('segoeuib.ttf',20)
    #传入4个参数:文字开始坐标,文字,颜色以及字体(字体可以不传入,使用默认字体)
    draw.text((50,60),'Hello,world',(140,255,166),font = font)
    img1.show()
    关于本篇内容如有转载请注明出处;技术内容的探讨、纠错,请发邮件到70907583@qq.com
  • 相关阅读:
    DripRoad(点滴之路)
    如何写优雅的代码
    .Net 一直在改变
    Protobufnet的完美解决方案
    关于msgpack序列化后的消息包是否再压缩
    失眠
    创建一个比微软性能更好空间更少的GUID
    msgpack与protobuf的简单性能测试对比
    分布式游戏服务器的登陆流程
    对象池的实现与性能测试
  • 原文地址:https://www.cnblogs.com/watertaro/p/9074453.html
Copyright © 2011-2022 走看看