zoukankan      html  css  js  c++  java
  • python常用库之Pillow(PIL)的使用

    一、基本使用

    测试图片为:

    1.打开

    from PIL import Image
    
    im = Image.open("C:/Users/bingyunsky/Desktop/test.jpg")
    print(im.format, im.size, im.mode)  # 打印格式、尺寸(长、宽;pixels)、类型
    # 输出结果: JPEG (200, 200) RGB
    im.show() # 展示获取到的图片

    常用属性

    im.width  # 宽度
    im.height  # 高度
    im.size  # 尺寸(宽和高),是一个元组
    im.mode  # 模式,如RGB, RGBA, P, L等
    im.format  # 格式,如.jpg .png等
    im.readonly  # 是否只读,值为0或1
    im.category  # 类别
    im.info  # 图片的信息,是一个字典

    2.创建一张新图片

    from PIL import Image
    
    im = Image.new('RGB', (200, 160), (0, 0, 255))  # (0,0,255)可以换成'#0000FF'或者'blue',都是表示蓝色
    im.show()

    运行结果:

    3.图片的模式

    4.图片的模式转换(convert)

    from PIL import Image
    
    im = Image.open("C:/Users/bingyunsky/Desktop/test.jpg")
    print(im.mode)
    im1 = im.convert('1')
    print(im1.mode)
    # im1.show()
    im2 = im.convert('L')
    print(im2.mode)
    # im2.show()
    im3 = im.convert('P')
    print(im3.mode)
    im3.show()
    
    # 输出结果为:
    # RGB
    # 1
    # L
    # P

    convert(self, mode=None, matrix=None, dither=None, palette=WEB, colors=256): 将当前图片转换为指定的模式,并且返回转换后的图片。如果不指定模式,则选择一种能保留图片所有信息且不使用调色板的模式(通常的结果是不转换)。将彩色图像转换为灰度('L')时,使用ITU-R 601-2进行亮度转换:L = R * 299/1000 + G * 587/1000 + B * 114/1000 。将灰度('L')或真彩('RGB')转换为模式'1'时,如果dither参数为'NONE',所有大于128的值均设置为255(白色),所有其他值都设为0(黑色)。

    convert()方法有5个参数,都有默认值,根据转换的模式来传值:

    mode,图片的模式,传入需要转换的模式。部分模式之间不支持转换,代码会报错。

    matrix, 转换矩阵。传入该参数时,应该传入由浮点数构成的元组,元组长度为4或12。matrix只支持从少数模式转换成'L'或'RGB'。

    dither, 高频振动,用于控制颜色抖动。从模式'RGB'转换为'P'或从'RGB'或'L'转换为'1'时使用。可用的方法有'NONE'或'FLOYDSTEINBERG'(默认)。当提供了matrix参数时不使用此功能。

    palette, 调色板,用于控制调色板的产生。从模式'RGB'转换为'P'时使用,可用的方法有'WEB'(默认)或'ADAPTIVE'。'ADAPTIVE'表示使用自适应的调色板。

    colors, 自适应调色板使用的颜色数。当palette参数为'ADAPTIVE'时,用于控制调色板的颜色数目。默认是最大值,即256种颜色。

    更多:https://blog.csdn.net/leemboy/article/details/83792729

    https://www.jb51.net/article/196007.htm

  • 相关阅读:
    07-2. A+B和C (15)
    07-1. 换个格式输出整数 (15)
    07-0. 写出这个数 (20)
    06-3. 单词长度(15)
    06-2. 字符串字母大小写转换(10)
    06-1. 简单计算器(20)
    06-0. 混合类型数据格式化输入(5)
    05-3. 求a的连续和(15)
    05-2. 念数字(15)
    05-1. 约分最简分式(15)
  • 原文地址:https://www.cnblogs.com/zijue/p/14081722.html
Copyright © 2011-2022 走看看