使用PIL的setpalette()替换调色板TIF图像颜色时报AttributeError求助
问题原因
- 你遇到的
AttributeError: setpalette报错是因为Pillow库版本迭代后废弃了setpalette方法,新版Pillow(v9.1.0及以上)中操作调色板的统一接口为putpalette,两者参数规则完全一致。
修复方案
直接修改报错行的方法名即可,修改后的代码片段如下:
# convert back to an image im2save = Image.fromarray(img_array, mode='P') # 替换setpalette为putpalette im2save.putpalette(p) im2save.save(filepath2)
补充说明
如果修改后仍有异常,可以额外检查两个点:
- 确认原图读取时的调色板返回值正常:
print(len(p)),8位调色板的长度应为768(256色*3通道RGB值) - 确认
pond_value和ice_value属于调色板的有效索引范围(0~255),避免后续调色板映射异常
内容的提问来源于stack exchange,提问作者gram_schmidt
相关产品推荐
相关产品推荐

