python - 如何在Python 3.7中使用Pygame显示用Pillow加载的图像?

标签 python pygame png python-imaging-library python-3.7

我使用以下命令将图像导入到我的项目中

from PIL import Image
myImage = Image.open("myImageDirectory.png")

所以 myImage 现在作为 png 文件导入。但我想使用 Pygame 将其显示到屏幕上。通常我使用

import pygame
win = pygame.display.set_mode((500, 500))
win.blit(myImage, (50, 50))

现在我收到错误消息,该函数需要一个表面,而不是一个 png 文件。 有谁知道如何将图像转换为表面或如何显示它?

我还没有尝试太多,因为我没有找到任何可以解决我的问题的东西。

编辑:

What is wrong with this way that I get the error: Couldn't open bg.png

最佳答案

参见PIL and pygame.image 。使用Image.tobytes()获取字节对象形式的图像数据和 pygame.image.fromstring()将数据加载到 pygame.Surface对象:

from PIL import Image
import pygame
pilImage = Image.open("myImageDirectory.png")
myImage = pygame.image.fromstring(pilImage.tobytes(), pilImage.size, pilImage.mode)

关于python - 如何在Python 3.7中使用Pygame显示用Pillow加载的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56976371/

相关文章:

python - 使用 altinstall 创建 virtualenv

python - 如何在pygame中获得可变的键盘输入?

python - Python 中的类字符列表映射如何工作?

ios - 不常见的png文件iOS显示

android - 9 补丁图像错误

python - 如何根据另一列的计数删除具有 51%+ NaN 值的行

python - 如何在 Windows 中将 python 添加到 cmd

python - 如何使用 Python 将光标移动到 MySQL 中的最后一条记录?

python - 尝试向我的游戏添加增长条时出现循环问题

php - Laravel - 无法将存储在我的数据库中的 .png 图像作为 base64 编码字符串提供