gpt4 book ai didi

python - 使用 pygame 从 .zip 加载文件时出现 "File path contains null characters"

转载 作者:行者123 更新时间:2023-12-01 09:03:19 24 4
gpt4 key购买 nike

我正在制作一个游戏,其中包含位于受密码保护的 .zip 中的图像、文本和音频文件。我正在尝试使用 pygame.image.load 并显示如下图像:

from zipfile import ZipFile
import pygame
import pyganim
import sys

pygame.init()
root = pygame.display.set_mode((320, 240), 0, 32)
pygame.display.set_caption('image load test')



archive = ZipFile("spam.zip", 'r')
mcimg = archive.read("a.png", pwd=b'onlyforthedev')

mc = pygame.image.load(mcimg)

anime = pyganim.PygAnimation([(mcimg, 100),
(mcimg, 100)])
anime.play()

while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()


windowSurface.fill((100, 50, 50))
anime.blit(root, (100, 50))
pygame.display.update()

这是我从中得到的错误:

Traceback (most recent call last):
File "C:\Users\admin\Desktop\VERY IMPORTANT FOR GAME DISTRIBUTION\few.py",
line 41, in <module>
mc = pygame.image.load(mcimg)
pygame.error: File path '�PNG


' contains null characters

最佳答案

函数pygame.image.load可以从文件源加载图像。您可以传递文件名或类似 Python 文件的对象。

但是,实际上你给出了图像字节。

要解决此问题,您可以将字节包装在 io.Bytes 实例中并将其用作类似文件的对象:

import zipfile
import io

with zipfile.ZipFile("spam.zip", 'r') as archive:
mcimg = archive.read("a.png", pwd=b'onlyforthedev')

mc = pygame.image.load(io.BytesIO(mcimg))

关于python - 使用 pygame 从 .zip 加载文件时出现 "File path contains null characters",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com