【问题标题】:Pygame Error: File is not a windows BMP filePygame 错误:文件不是 Windows BMP 文件
【发布时间】:2021-10-25 04:03:31
【问题描述】:

我在关注此tutorial 时遇到问题。运行后弹出错误提示

"ball = pygame.image.load("...) 错误:文件不是 Windows BMP 文件。

我使用的是 OSX 10.9.5

我高度怀疑我搞砸了所有必要组件的安装,我安装时的步骤如下:

  1. 删除 Python 3 并重新安装 Python 2.7 32 位版本(使用 .dmg)
  2. 使用 .dmg 安装 pygame 包
  3. 被要求安装 X11,已安装 X11
  4. 打开 SDL 框架 .zip 并拖放到 Application/Library 中的文件夹中

我搞砸了吗?特别是对于 SDL?请告诉我解决方法,谢谢。

//尝试将图片文件放在同一目录下;将图像文件保存为 .bmp

【问题讨论】:

    标签: python pygame


    【解决方案1】:

    我在这里遵循了answer 的解决方案。前往 Macintosh HD/Library/Frameworks/..... 并删除其中的 pygame 文件夹并重新安装。

    【讨论】:

    • 很酷,这解决了你的问题。值得注意的是,根据the pygame.image docs 的说法:“图像模块是Pygame 的必需依赖项,但它只能可选地支持任何扩展文件格式。默认情况下它只能加载未压缩的BMP 图像。”很可能你的 Pygame 的原始版本没有正确构建。
    【解决方案2】:

    我看到了链接,把图片另存为ball.bmp(页面中图片是gif格式),试试下面的代码:

    import sys, pygame
    pygame.init()
    
    size = width, height = 320, 240
    speed = [2, 2]
    black = 0, 0, 0
    screen = pygame.display.set_mode(size)
    
    ball = pygame.image.load("ball.bmp")
    ballrect = ball.get_rect()
    while 1:
            for event in pygame.event.get():
                if event.type == pygame.QUIT: sys.exit()
    
            ballrect = ballrect.move(speed)
            if ballrect.left < 0 or ballrect.right > width:
                speed[0] = -speed[0]
            if ballrect.top < 0 or ballrect.bottom > height:
                speed[1] = -speed[1]
    
            screen.fill(black)
            screen.blit(ball, ballrect)
            pygame.display.flip()
    

    它对我来说很好用。也许您应该将图片保存为 .bmp 文件,然后重试。

    【讨论】:

    • 好吧,请确保脚本文件和图片文件在同一路径下,并尝试为Python安装PIL包或将图片格式更改为png...
    • 或查看stackoverflow.com/questions/19882491/… 了解一些信息
    猜你喜欢
    • 1970-01-01
    • 2014-07-28
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多