详解Python PIL getpixel()方法

  • Post category:Python

接下来我会详细讲解Python PIL库的 getpixel() 方法,包括该方法的作用、语法、返回值,以及使用示例等相关内容。

方法作用

getpixel() 方法用于获取指定位置的像素值。

方法语法

getpixel(x, y)
  • x:x 轴坐标值。
  • y:y 轴坐标值。

返回值

返回指定位置的像素值。

在 RGB 模式下,该方法返回一个元组,元组包含三个项,分别对应红、绿、蓝三个通道的像素值。在 L 模式下,该方法仅返回亮度值。

方法示例

下面我们来看两个示例来使用 getpixel() 方法。

示例1:获取指定位置的像素值

from PIL import Image

img = Image.open("test.jpg")
# 获取位置为(0,0)的像素值
pixel = img.getpixel((0, 0))
print(pixel)

输出结果为:

(74, 57, 28)

代码中的 img 对象是通过 Image 类构造函数读取一张名为 “test.jpg” 的图片文件。接着我们调用 getpixel() 方法来获取图片左上角(坐标为 (0,0))像素的像素值,并将返回值存储到 pixel 中。最后我们将该像素值打印出来。

示例2:遍历图片像素并修改像素值

from PIL import Image

img = Image.open("test.jpg")
# 获取图片的宽和高
width, height = img.size
# 遍历图片像素
for x in range(width):
    for y in range(height):
        pixel = img.getpixel((x, y))
        # 将红色通道的值乘以0.5
        r = int(pixel[0] * 0.5)
        # 将修改后的像素值写回到图片中
        img.putpixel((x, y), (r, pixel[1], pixel[2]))
img.show()

代码中的 img 对象是通过 Image 类构造函数读取一张名为 “test.jpg” 的图片文件。我们首先获取图片的宽和高,然后遍历所有的像素点,并使用 getpixel() 方法获取每一个像素的值。接着我们将获取到的像素值中的红色通道乘以0.5,将修改后的三个像素值重新组合成一个元组,然后使用 putpixel() 方法将新的像素值写回到图片中。

最后,我们使用 show() 方法展示处理后的图片。