zoukankan      html  css  js  c++  java
  • python学习-Pillow图像处理

    Pillow中文文档:https://pillow-cn.readthedocs.io/zh_CN/latest/handbook/tutorial.html

    安装:pip install pillow

    操作图像:

    #!/usr/bin/env python3
    # _*_ coding utf-8 _*_
    
    __author__ = 'nxz'
    
    from PIL import Image, ImageFilter
    from time import sleep
    
    # 打开一个jpg图像文件
    im = Image.open('test.jpg')
    w, h = im.size  #
    print('图片的宽:%s,和高:%s' % (w, h))
    
    # 图片缩放
    im.thumbnail((w // 2, h // 2))
    w, h = im.size
    print(w, h)
    
    # 缩放之后的图片重新保存
    im.save('thumbnail.jpg', 'jpeg')
    
    # 其他功能:切片、旋转、滤镜、输出文字、调色板
    
    # 模糊效果
    im2 = im.filter(ImageFilter.BLUR)
    im2.save('blur.jpg','jpeg')

    截屏:

    from PIL import ImageGrab
    from time import sleep
    
    m = int(input("请输入想截屏多少次:"))
    n = 1
    while n <= m:
        sleep(0.02)
        im = ImageGrab.grab()
        local = (r'%s.jpg' % (n))
        im.save(local, 'jpeg')
        n = n + 1

    转换文件到JPEG:

    '''
    将指定路径下的图片后缀改为  “.jpg” 格式
    '''
    
    from PIL import Image
    import os, sys
    
    for infile in sys.argv[1:]:
        f, e = os.path.splitext(infile)
        outfile = f + '.jpg'
        if infile != outfile:
            try:
                Image.open(infile).save(outfile)
            except Exception as exc:
                print(exc)

    GIF动图:

    """
    GIf动图
    """
    
    from PIL import Image
    
    im = Image.open('test.jpg')
    images = []
    images.append(Image.open('blur.png'))
    images.append(Image.open('test.jpg'))
    im.save('gif.gif', save_all=True, append_image=images, loop=1, duration=1, comment=b'aaaabbb')

    几何变换:

    #简单的集合变换
    out = im.resize((128, 128))
    
    #旋转图像
    out = im.transpose(Image.FLIP_LEFT_RIGHT) #翻转
    out = im.transpose(Image.FLIP_TOP_BOTTOM)
    out = im.transpose(Image.ROTATE_90)
    out = im.transpose(Image.ROTATE_180) #旋转180°
    out = im.transpose(Image.ROTATE_270) #旋转270°
  • 相关阅读:
    python 字符编码
    python 模块 json
    python 命令空间
    python 装饰器
    ItemsControl Grouping分组
    WPF CanExecuteChanged
    WPF 控件树
    Bingding模型
    WCF中的AsyncPattern
    WPF中获取指定坐标依赖对象数据项
  • 原文地址:https://www.cnblogs.com/nxzblogs/p/10663431.html
Copyright © 2011-2022 走看看