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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:28:06