使用Pygame加载PNG文件时出现Unsupported image format错误求助
Pygame加载Idle动画时出现“Unsupported image format”错误的解决办法
以下是几个可能的原因和对应的解决方法:
过滤非PNG文件
walk函数会遍历目录下所有文件,包括系统自动生成的隐藏文件(比如Mac系统的.DS_Store),这类文件不是图片格式,会触发加载错误。可以在代码里添加过滤逻辑,只处理.png后缀的文件:import pygame from os import walk def import_folder(path): surface_list = [] for _, __, img_files in walk(path): real_imgs = sorted(img_files) for image in real_imgs: # 只处理PNG文件 if not image.lower().endswith('.png'): continue full_path = path + '/' + image img_surf = pygame.image.load(full_path) surface_list.append(img_surf) return surface_list print(import_folder('../graphics/character/idle'))用
os.path.join拼接路径
手动拼接路径容易出现分隔符错误或者特殊字符问题,改用os.path.join可以适配不同操作系统的路径规则,避免路径无效:import pygame from os import walk import os def import_folder(path): surface_list = [] for _, __, img_files in walk(path): real_imgs = sorted(img_files) for image in real_imgs: if not image.lower().endswith('.png'): continue # 用os.path.join拼接路径 full_path = os.path.join(path, image) img_surf = pygame.image.load(full_path) surface_list.append(img_surf) return surface_list print(import_folder('../graphics/character/idle'))检查PNG文件完整性
确认idle目录下的所有PNG文件没有损坏:尝试用系统图片查看器逐个打开文件,如果有无法显示的文件,重新替换该文件即可。统一文件名后缀大小写
部分系统对文件名大小写不敏感,但Pygame加载时会严格校验。如果文件后缀是.PNG(大写),可以统一改成小写.png,或者在过滤时忽略大小写(如上面代码中的image.lower().endswith('.png'))。
内容的提问来源于stack exchange,提问作者Quantum
相关产品推荐
相关产品推荐

