python - 如何在 Python 中随机化图像以及如何在图像顶部添加图像?
问题描述
我想解决2个问题:
1.)如何在 Python 中随机化图像?每次运行程序时,我都想显示一个图像。这些是我的代码的一些片段,但有一些错误。路径是复制和粘贴的,所以我不太确定为什么会出现错误。
import os
import random
path =r"D:\Files\Second Year Files\Advance Compprog\Final Project\Code Blocks\Images\Trivias"
files = os.listdir(path)
d = random.choice(files)
os.startfile(d)
FileNotFoundError: [WinError 2] 系统找不到指定的文件:'Trivia2.png'
我也尝试使用此代码,但没有显示:
import pygame
import os
import random
# Initialize the pygame
pygame.init()
screenHeight = 550
screenWidth = 1000
screen = pygame.display.set_mode((screenWidth, screenHeight))
Trivias = [pygame.image.load(os.path.join("Images/Trivias", "Trivia1.png")),
pygame.image.load(os.path.join("Images/Trivias", "Trivia2.png")),
pygame.image.load(os.path.join("Images/Trivias", "Trivia3.png"))]
trivia = random.choice(Trivias)
screen.blit(trivia, [0,0])
2.) 如何在另一张图像之上添加图像? 我试图在图像上对图像进行 blit,但是当我运行程序时,它要么会快速闪烁,要么会显示我用来 blit 的最后一个图像。如果我想对第一张图像进行 blit,然后在一段时间后,我想将它与另一张重叠(两个图像具有相同的大小并且将在相同的位置显示)。我该怎么做并设置时间间隔?我希望你能帮助我请:(
background_image = pygame.image.load(os.path.join("Images/Start", "Level1Lose.png"))
screen.blit(background_image, [0, 0])
pygame.display.update()
hello_image = pygame.image.load(os.path.join("Images/Start", "hello.png"))
screen.blit(hello_image, [0, 0])
pygame.display.update()
解决方案
问题 1 的答案:
检查files
变量。这是一个列表。它可能是该目录中仅包含文件名的列表,我认为是这种情况。为了正常运行,它应该是文件路径列表,而不仅仅是文件名。
path+d
您可以通过传递而不是仅传递来解决此问题d
相同的论点可以应用于未遂案件。
推荐阅读
- android - Kotlin 的 AlertDialog 中的不同颜色背景
- c++ - 如何中断 C++ 中的阻塞 accept() 调用?
- javascript - 使用 Amcharts 在生产环境中优化 React 应用程序的大小
- javascript - 输入值变化时如何触发函数
- api - 使用多种服务进行身份验证:只有一个 REST 调用还是多个调用?
- python - 如何快速将大量单词添加到 FuzzySet 中?
- react-native - 使用 Material UI 中的复选框时反应本机的不变违规
- r - R 如何将“yy-mmm”字符中的日期列转换为整数中的“yyyy”新列以进行图形可视化?
- swift - 使用 ReturnKey 重命名时更改 NSTextField 的背景颜色
- php - 在 PHP 中仅随机播放相同的值关联数组