📜  Python PIL | Image.convert() 方法(1)

📅  最后修改于: 2023-12-03 14:46:02.218000             🧑  作者: Mango

Python PIL | Image.convert() 方法

在Python Imaging Library (PIL)中,Image.convert() 是一个非常常用的方法之一,它用于将一个图像从一种颜色模式转换为另一种。这个方法会返回一个新的图像对象,原始图像不会受到影响。

语法

Image.convert(mode=None, matrix=None, dither=None, palette=0, colors=256)

  • mode: 目标颜色模式。假如没有指定,这个方法会返回一个图像对象,其颜色模式和原始图像的一样;
  • matrix: 如果目标颜色模式是“RGB”,则需要指定一个转换矩阵;
  • dither: 是否进行抖动。假如指定为一个无参数函数,这个函数将被用于抖动;
  • palette: 是否使用常规版本的调色板算法或某种其他的算法。
  • colors: 指定目标颜色模式的颜色数。
示例
from PIL import Image

# 打开一张图片
im = Image.open("example.png")

# 将图片的模式转换为灰度模式
im = im.convert("L")

# 显示转换后的图片
im.show()
参数说明
  • 在 mode 参数中,以下颜色模式是 PIL 支持的:

    • 1 (1-bit pixels, black and white, stored with one pixel per byte)
    • L (8-bit pixels, black and white)
    • P (8-bit pixels, mapped to any other mode using a color palette)
    • RGB (3x8-bit pixels, true color)
    • RGBA (4x8-bit pixels, true color with transparency mask)
    • CMYK (4x8-bit pixels, color separation)
    • YCbCr (3x8-bit pixels, color video format)
    • LAB (3x8-bit pixels, the Lab color space)
    • HSV (3x8-bit pixels, Hue, Saturation, Value color space)
    • I (32-bit signed integer pixels)
    • F (32-bit floating point pixels)
  • 如果目标颜色模式是 RGB,必须传递一个转换矩阵。

  • 如果目标颜色模式是 P,则需要指定一个 color palette。

  • 如果想要更进一步的了解,可以看下面的示例:

# Convert an RGB image to grayscale
img = Image.open('example.png').convert('LA')
img.save('greyscale.png')

# Convert an RGB image to the L*a*b* colour space
img = Image.open('example.png').convert('LAB')
img.save('lab.png')

# Convert an RGB image to a black and white (1-bit) image
img = Image.open('example.png').convert('1')
img.save('black_and_white.png')