首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用pygame从.zip加载文件时“文件路径包含空字符”

用pygame从.zip加载文件时“文件路径包含空字符”
EN

Stack Overflow用户
提问于 2018-09-12 05:10:37
回答 1查看 418关注 0票数 1

我正在制作一个游戏,其中包括位于密码保护的.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
EN

回答 1

Stack Overflow用户

发布于 2018-09-12 05:36:22

函数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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52284271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档