python - pygame.error:文件不是运行 Mac os Monteray 的 m1 Mac 上的 Windows BMP 文件
问题描述
我环顾四周,但没有找到任何可行的解决方案。
我只是在使用教程学习 pygame:https ://www.youtube.com/watch?v=jO6qQDNa2UY&list=WL&index=44&t=1379s
但是当我尝试链接图像时出现错误:pygame.error: File is not a Windows BMP file。
除了重新安装pygame(上一期)或重新安装python之外,我已经尝试了所有方法。
这是我的代码
import pygame
import os
pygame.init()
WIDTH, HEIGHT = 900, 500
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("First Game")
WHITE = (255,255,255)
RED = (255,0,0)
FPS = 60
YELLOW_SPACESHIP_IMAGE = pygame.image.load(
os.path.join('Assets', 'spaceship_yellow.png')).convert()
RED_SPACESHIP_IMAGE = pygame.image.load(
os.path.join('Assets', 'spaceship_red.png')).convert()
def draw_window():
WIN.fill((RED))
WIN.blit(YELLOW_SPACESHIP_IMAGE, (300,100))
pygame.display.update()
def main():
clock = pygame.time.Clock()
run = True
while run:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
draw_window()
pygame.QUIT()
if __name__ == "__main__":
main()
解决方案
您尝试加载spaceship_yellow.png
并且spaceship_red.png
从扩展名判断哪个PNG
不是BMP
s,您的错误
pygame.error: File is not a Windows BMP file
建议 pygame 期待BMP
文件。pygame.image 文档说
image 模块是 pygame 的必需依赖项,但它只可选地支持任何扩展文件格式。默认情况下,它只能加载未压缩的 BMP 图像。当构建完整的图像支持时,该
pygame.image.load()
函数可以支持以下格式。
然后枚举格式,显然您没有完整的图像支持,我认为最简单的解决方案是将PNG
s 转换为未压缩的BMP
图像格式。
推荐阅读
- swift - 无法识别的选择器发送到实例 0x7feb26814010'
- python - 简单python代码的时间复杂度
- braintree - 在生产中创建订阅计划时 BrainTree 错误 HTTP 406
- typescript - 检查字符串是否是联合类型的成员
- mysql - sql连接问题,无法从表a中检索与表b中的某些条件匹配的记录以及表A中存在的所有ID
- swift - Swift 结合 TimerPublisher 没有任何订阅者
- php - 带有特定代码页和一个模板错误视图的自定义 HTTP 错误页面 Laravel
- node.js - NodeJS @azure/service-bus:有任何手动向死信发送消息的示例吗?
- python - 从邮件正文中的 Outlook 邮件中保存 excel 文件
- java - 我如何将邮件标题添加为自定义文本而不使用来自的邮件