Pygame错误:文件不是Windows BMP文件。

12

我正在按照教程操作,但运行后出现错误信息:

"ball = pygame.image.load("...) Error:File is not a Windows BMP file.

我使用的是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格式

3个回答

1
我按照这里的解决方案answer进行操作。前往Macintosh HD/Library/Frameworks/.....,删除其中的pygame文件夹并重新安装。

很酷,这解决了你的问题。值得注意的是,根据 pygame.image文档: "image模块是Pygame的必需依赖项,但它仅可选择支持任何扩展文件格式。默认情况下,它只能加载未压缩的BMP图像。" 很可能你最初使用的Pygame版本构建不正确。 - Brad Montgomery

0

我看到了链接并将图片保存为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... - lqhcpsgbl
或者查看http://stackoverflow.com/questions/19882491/how-to-load-png-files-with-pygame-image获取一些信息。 - lqhcpsgbl

0

这对我来说是个问题(即使是当前的最新版本Pygame 2.1.2)。我尝试在我的pyenv虚拟环境中卸载和重新安装,但没有帮助。最终有所帮助的是通过homebrew安装一些额外的系统依赖。

$ brew install sdl2 sdl2_mixer sdl2_gfx sdl2_image sdl2_net sdl2_ttf

然后我通过pip卸载并重新安装pygame,它开始正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接