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

Python Pillow的Image.load()方法是否有使用限制?索引越界是什么原因

问题原因说明

这个错误和Image.load()本身的限制无关,是你访问像素的坐标顺序写反了。

Pillow 像素访问规则

  • img.size的返回值格式为(宽度, 高度),对应水平方向总像素数、垂直方向总像素数,你当前的图片宽1024、高768
  • img.load()返回的像素对象,索引规则是pixels[水平坐标x, 垂直坐标y]:
    • 第一个参数x是列号,取值范围是0 ~ 宽度-1,对应你代码里的col变量
    • 第二个参数y是行号,取值范围是0 ~ 高度-1,对应你代码里的row变量

你代码里写的pixels[row, col]把行号、列号的位置写反了,把最大可达1023的列号传给了仅支持最大767的y坐标位置,自然会抛出索引越界错误。

修复后的代码
from PIL import Image

with Image.open('nature.jpg') as img:
    print("Image size is : " ,img.size)
    
    pixels = img.load()
    
    with open('file.txt', 'w') as file:
        
        for row in range(img.height):
            for col in range(img.width):
                # 调整坐标顺序即可
                file.write(str(pixels[col, row])+ ' ')
                
            file.write('\n')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:39:02