PyGame 在 MacOSX 中:CGContextDrawImage:无效上下文 0x0
PyGame in MacOSX: CGContextDrawImage: invalid context 0x0
我最近开始使用 PyGame 来开发一个显示图像的简单程序,但是我 运行 遇到了一个问题,我无法加载带有很多颜色的图像 (?) .在我的第一次测试中,我使用了一些地面实况分割图像,所以它是全黑的,两种颜色描绘了图像的分割部分。当我尝试绘制真实图像时,它会在终端中显示黑色图像和以下错误:
Oct 24 00:50:08 python[4371] <Error>: CGBitmapContextInfoCreate: CGColorSpace does't support output
Oct 24 00:50:08 python[4371] <Error>: CGContextDrawImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
我尝试在互联网上搜索 运行 遇到此问题的人,但我所能找到的只是 XCode 上遇到无效上下文问题的人(我没有使用).
为了它,这是我写的简单代码,没有神秘感:
import pygame
import glob
import os
pygame.init()
screen = pygame.display.set_mode((640, 640))
imageName = '2.png'
myimage = pygame.image.load(imageName)
imagerect = myimage.get_rect()
while 1:
screen.fill((255,0,255))
screen.blit(myimage, imagerect)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit(0)
我是 运行 Python 2.7.12,OSX 10.12 Sierra 和 PyGame 1.9.2。
编辑:我刚刚尝试使用全黑的 PNG 文件,但出现了同样的错误。不知道怎么回事
编辑 2:我尝试了 运行 PyGame 加载 PNG 文件并显示它的示例代码 (pygame.examples.scaletest) 并且发生了同样的错误,所以我猜这是一个Sierra 更新问题。
我在升级到 Sierra 后遇到了同样的问题。
我的解决方案是卸载并重新安装 PyGame.
除了卸载pygame,我还必须卸载以下内容:
brew uninstall sdl sdl_image sdl_mixer sdl_ttf smpeg portmidi
然后重新安装:
brew install sdl sdl_image sdl_mixer sdl_ttf smpeg portmidi
之后:
python -m pip install pygame
它又开始工作了。
我在 python3 的 Sierra 中遇到了同样的问题。
- 首先,我从 3.5 升级到 3.6.1。
- 其次,我降级pygame。
- 卸载 pip3 卸载 pygame ==> 卸载 1.9.4
- 安装 pip3 install pygame ==> 安装 1.9.3
我最近开始使用 PyGame 来开发一个显示图像的简单程序,但是我 运行 遇到了一个问题,我无法加载带有很多颜色的图像 (?) .在我的第一次测试中,我使用了一些地面实况分割图像,所以它是全黑的,两种颜色描绘了图像的分割部分。当我尝试绘制真实图像时,它会在终端中显示黑色图像和以下错误:
Oct 24 00:50:08 python[4371] <Error>: CGBitmapContextInfoCreate: CGColorSpace does't support output
Oct 24 00:50:08 python[4371] <Error>: CGContextDrawImage: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
我尝试在互联网上搜索 运行 遇到此问题的人,但我所能找到的只是 XCode 上遇到无效上下文问题的人(我没有使用).
为了它,这是我写的简单代码,没有神秘感:
import pygame
import glob
import os
pygame.init()
screen = pygame.display.set_mode((640, 640))
imageName = '2.png'
myimage = pygame.image.load(imageName)
imagerect = myimage.get_rect()
while 1:
screen.fill((255,0,255))
screen.blit(myimage, imagerect)
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit(0)
我是 运行 Python 2.7.12,OSX 10.12 Sierra 和 PyGame 1.9.2。
编辑:我刚刚尝试使用全黑的 PNG 文件,但出现了同样的错误。不知道怎么回事
编辑 2:我尝试了 运行 PyGame 加载 PNG 文件并显示它的示例代码 (pygame.examples.scaletest) 并且发生了同样的错误,所以我猜这是一个Sierra 更新问题。
我在升级到 Sierra 后遇到了同样的问题。 我的解决方案是卸载并重新安装 PyGame.
除了卸载pygame,我还必须卸载以下内容:
brew uninstall sdl sdl_image sdl_mixer sdl_ttf smpeg portmidi
然后重新安装:
brew install sdl sdl_image sdl_mixer sdl_ttf smpeg portmidi
之后:
python -m pip install pygame
它又开始工作了。
我在 python3 的 Sierra 中遇到了同样的问题。
- 首先,我从 3.5 升级到 3.6.1。
- 其次,我降级pygame。
- 卸载 pip3 卸载 pygame ==> 卸载 1.9.4
- 安装 pip3 install pygame ==> 安装 1.9.3