You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python编写获取图片所有像素颜色值的代码

Python获取并展示图片像素颜色的实现方案

首先你需要安装Python的图像处理库Pillow,执行以下命令安装即可:
pip install pillow


核心逻辑

  • 加载本地图片文件,统一转为RGB色彩模式(规避PNG透明通道、CMYK印刷模式等特殊格式的兼容问题)
  • 通过坐标遍历图片的每一个像素,直接读取对应位置的RGB颜色值
  • 可按需选择打印输出、存入本地文件或做后续处理

完整代码示例

from PIL import Image

# 1. 加载图片,替换为你自己的图片路径
img = Image.open("test.jpg")
# 2. 统一转为RGB模式
rgb_img = img.convert("RGB")
# 3. 获取图片的宽度和高度(像素单位)
width, height = rgb_img.size
# 4. 加载像素访问对象,读取速度更快
pix = rgb_img.load()

# 存储所有像素颜色的列表,格式为 (x坐标, y坐标, R值, G值, B值)
all_pixel_colors = []

# 遍历所有像素
for y in range(height):
    for x in range(width):
        r, g, b = pix[x, y]
        all_pixel_colors.append((x, y, r, g, b))
        # 这里可以按需打印,比如只打印前100个像素避免输出过多
        if len(all_pixel_colors) <= 100:
            print(f"坐标({x},{y})的颜色值:R={r}, G={g}, B={b}")

# 可选:将所有像素颜色存入本地txt文件
with open("pixel_colors.txt", "w", encoding="utf-8") as f:
    for item in all_pixel_colors:
        f.write(f"x:{item[0]}, y:{item[1]}, R:{item[2]}, G:{item[3]}, B:{item[4]}\n")

print(f"已读取完成,共获取{len(all_pixel_colors)}个像素的颜色值")

补充说明

  • 坐标规则:x轴从图片最左侧开始向右递增,y轴从图片最顶部开始向下递增
  • 如果图片分辨率超过1000*1000,不建议直接打印所有像素,会产生数十万行输出,建议存入本地文件查看
  • 要是需要获取带透明通道的颜色值,把convert("RGB")改成convert("RGBA")即可,读取到的颜色值会多一个A(透明度,0为完全透明,255为完全不透明)参数

可选拓展:可视化展示像素块

如果想要直观看到每个像素的颜色,你可以安装matplotlib库实现小范围像素的可视化,安装命令:
pip install matplotlib
对应的可视化代码示例(以展示左上角20*20的像素块为例):

import matplotlib.pyplot as plt
import numpy as np

# 取左上角20*20区域的像素
show_width, show_height = 20, 20
pixel_grid = np.zeros((show_height, show_width, 3), dtype=np.uint8)

for y in range(show_height):
    for x in range(show_width):
        pixel_grid[y, x] = pix[x, y]

plt.imshow(pixel_grid)
plt.title("左上角20*20像素颜色展示")
plt.xticks(range(show_width))
plt.yticks(range(show_height))
plt.show()

内容的提问来源于stack exchange,提问作者SharkieWasHere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:15:07