python图像库处理 栅格图像; 也就是说,像素数据的矩形。
图像可以由一个或多个数据带组成。python图像库允许您在一个图像中存储多个波段,前提是它们都具有相同的尺寸和深度。例如,PNG图像的红色、绿色、蓝色和阿尔法透明度值可能有“r”、“g”、“b”和“a”条带。许多操作分别作用于每个波段,例如柱状图。把每个像素想象成每个波段有一个值通常是有用的。
要获取图像中带区的编号和名称,请使用 getbands()
方法。
这个 mode
定义图像中像素的类型和深度。当前版本支持以下标准模式:
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)
- 请注意,这是指jpeg,而不是ITU-R BT.2020标准。
LAB
(3x8-bit pixels, the L*a*b color space)HSV
(3x8-bit pixels, Hue, Saturation, Value color space)I
(32-bit signed integer pixels)F
(32-bit floating point pixels)
PIL还为一些特殊模式提供有限的支持,包括 LA
(L与α), RGBX
(带填充的真彩色)和 RGBa
(真彩色加上预乘alpha)。但是,PIL不支持用户定义的模式;如果需要处理上面未列出的波段组合,请使用图像对象序列。
您可以通过 mode
属性。这是一个包含上述值之一的字符串。
您可以通过 size
属性。这是一个2元组,包含以像素为单位的水平和垂直大小。
python图像库使用笛卡尔像素坐标系,左上角有(0,0)。请注意,坐标指的是隐含的像素角;定位为(0,0)的像素的中心实际上位于(0.5,0.5)。
坐标通常作为2元组(x,y)传递给库。矩形表示为4个元组,首先给出左上角。例如,覆盖800x600像素图像的矩形写为(0,0,800,600)。
调色板模式( P
)使用调色板定义每个像素的实际颜色。
您可以使用 info
属性。这是字典对象。
加载和保存图像文件时如何处理这些信息取决于文件格式处理程序(请参见 图像文件格式 )大多数处理程序将属性添加到 info
属性,但在保存图像时忽略它。
对于可能将多个输入像素映射到单个输出像素的几何操作,python图像库提供了不同的重采样。 过滤器.
NEAREST
BOX
源图像的每个像素贡献给具有相同权重的目标图像的一个像素。因为上标相当于 NEAREST
. 此筛选器只能与 resize()
和 thumbnail()
方法。
3.4.0 新版功能.
BILINEAR
HAMMING
生成的图像比 BILINEAR
在地方层面上没有错位 BOX
. 此筛选器只能与 resize()
和 thumbnail()
方法。
3.4.0 新版功能.
BICUBIC
LANCZOS
对所有可能有助于输出值的像素使用高质量Lanczos过滤器(截断的sinc)计算输出像素值。此筛选器只能与 resize()
和 thumbnail()
方法。
1.1.3 新版功能.
滤波器 | 缩小尺寸质量 | 升级质量 | 性能 |
---|---|---|---|
NEAREST |
第二章 | ||
BOX |
γ | 阿尔法 | |
BILINEAR |
γ | γ | 阿尔法 |
HAMMING |
γ | 阿尔法 | |
BICUBIC |
阿尔法 | 阿尔法 | γ |
LANCZOS |
阿尔法 | 阿尔法 | γ |