我如何通过文本文件在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中加载图像的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android中加载带有动画的cardview GridView?
在 Pygame 中加载资产时出现 FileNotFound 错误 [重复]