• Python常用库Pillow图像处理



    在Pyhton图像库「Python Imaging Library」支持大量的图片格式,是图像处理和批处理的最佳选择,可以用这个来创建缩略图、文件格式之间的转换、打印图片、大小转换、颜色转换、还有对图片加滤镜「模糊、磨皮」等操作。功能非常简单,但是API调用非常简单


    安装

    安装的仍然使用pip安装,非常简单快捷。对于国内用户来说,不能访问python官网的时候,可以替换python源为阿里源或者其他国内源;其二对于其他的内网用户来说,可以在安装的时候加上代理地址。

    $ pip install Pillow # python2
    $ pip3 install Pillow # python3 如果没有添加pip3软连接,用python3的pip一样的
    
    $ pip install Pillow --proxy=10.10.10.10:80 # 代理
    

    验证是否安装成功,没有报错就是安装成功了。

    >>> import PIL
    >>> dir(PIL)
    ['PILLOW_VERSION', 'VERSION', '__builtins__', '__cached__', '__doc__.......
    
    

    访问文件

    用「open」方法打开指定文件即可,可以看到文件的一些详细参数,比如大小、高度、长度、格式、模式等。

    from PIL import Image
    try:
        im= Image.open("1.png")
        print(im.format, im.size, im.mode)
    except Exception as e:
            print(e)
    # output: PNG (736, 458) RGB
    

    加载图像

    获取到Image实例之后,可以用这个类的方法来处理和操作图像。这个是把图片保存位临时文件,然后用系统默认的图片查看工具来显示图片的,方便调试和测试。也可以用save()方法来保存文件。

    >>> im.show()
    >>> im.save("test.png") #
    

    读写图像

    对图像的几何变换、颜色变换、图像增强、以及剪切等操作。

    图像过滤器

    图像增强处理里面有个,包含了一个过滤器ImageFilter模块,可以模糊图片等操作,下面是一个模糊操作的Demo。

    # Import the modules
    from PIL import Image, ImageFilter
    
    try:
        # Load an image from the hard drive
        original = Image.open("1.png")
    
        # Blur the image
        blurred = original.filter(ImageFilter.BLUR)
    
        # Display both images
        original.show()
        blurred.show()
    
        # save the new image
        blurred.save("blurred.png")
    
    except:
        print "Unable to load image"
    

    效果如下:在这里插入图片描述
    除了BLUR,还有其他的参数。

    BLUR
    CONTOUR
    DETAIL
    EDGE_ENHANCE
    EDGE_ENHANCE_MORE
    EMBOSS
    FIND_EDGES
    SMOOTH
    SMOOTH_MORE
    SHARPEN
    

    创建缩略图

    也是同样使用实例的thumbnail方法即可,非常简单。

    from PIL import Image
    size = (128, 128)
    thumbnail= "thumbnail.jpeg"
    try:
        im =  Image.open("1.png")
    except Exception as e:
        print(e)
    im.thumbnail(size)
    im.save(thumbnail)
    

    缩略图

    剪切、粘贴

    剪切使用crop方法即可,指定 2 个坐标,需要说明的是左上角是(0 ,0);

    box = (10, 10, 200, 200) # 对应: 左 上 右 下
    region = im.crop(box) # 剪切
    
    region = region.transpose(Image.ROTATE_180)
    im.paste(region, box) # 粘贴
    
    

    小结

    python 图像处理「PIL」对图像处理非常容易,加上完善的API文档手册,对于新手也是非常友好的。

    更多阅读

    1. Pillow 官方文档


    作者:叉叉敌
    博客:https://chasays.github.io/
    微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
    本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。

  • 相关阅读:
    外卖 CPS
    拼多多虚拟产品搬砖玩法
    搞笑表情包
    读书
    抖音跑步赚钱
    bootstrapTable固定表头,表头错位问题
    关闭离开页面浏览器提示"确实要离开吗"
    子页面如何调用/关闭父页面layer
    BootstrapValidator 解决多属性被同时校验问题
    使用备份文件新建数据库Web框架
  • 原文地址:https://www.cnblogs.com/ievjai/p/14382723.html
Copyright © 2020-2023  润新知