我如何通过文本文件在Pygame中加载图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何通过文本文件在Pygame中加载图像相关的知识,希望对你有一定的参考价值。

这是我的pygame代码的一小部分。我正在尝试获取随机图像。在文本文件中,我有10条指向不同图像的不同路径。

random_number = random.randint(0,9)
file = open('ImagePath.txt','r')
paths = file.readlines()
path = paths[random_number]
Img = pygame.image.load(path)
Display.blit(Img, (20,20))

当我运行代码时,它说无法访问该图像,并且在该行上发现了错误:'Img = pygame.image.load(path)'

答案

我认为您解决问题的方式可能不正确。函数调用pygame.image.load需要一个图像文件,而不是文本file。您需要先创建一个图像,然后将其加载到pygame中。我会尝试查看OpenCV for python并从文件创建图像。由于OpenCV在numpy数组上运行,因此您将基于文本文件生成一个新的numpy。这可以通过多个for :循环来完成,循环遍历文本文件和图像数据结构。主要问题是您需要确保可以将opencv数据类型转换为pygame图像数据类型。

另一答案

您没有告诉python正确的图像相对文件路径,而只是在pygame.image.load()希望将路径传递给图像文件类型时,仅插入虚拟文件“ ImagePath.txt”。

尝试使用,如果使用pygame.image.load(),则提供实际图像的路径

import pygame
import random
import os
pygame.font.init()

random_number = random.randint(0,9)
file_path = os.path.dirname(__file__)
img_path = os.path.join(file_path, "img.png") # If file is located in root folder
image = pygame.image.load(img_path)
Display.blit(image, (20,20))

以上是关于我如何通过文本文件在Pygame中加载图像的主要内容,如果未能解决你的问题,请参考以下文章

在 pyqt 中加载图像和文本

如何在Android中加载带有动画的cardview GridView?

在 Pygame 中加载资产时出现 FileNotFound 错误 [重复]

如何在 Pygame 中加载动画 GIF 并获取所有单独的帧?

php 在没有模板的插件中加载文本片段

从mysql的片段中加载ListView