首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Pyglet加载图像

使用Pyglet加载图像
EN

Stack Overflow用户
提问于 2013-07-07 10:18:11
回答 2查看 2.9K关注 0票数 5

我正在使用pyglet 1.2alpha-1和Python 3.3。我有以下(非常简单的)应用程序,不知道我的问题是什么:

代码语言:javascript
复制
import pyglet

window = pyglet.window.Window()
#image = pyglet.resource.image('img1.jpg')
image = pyglet.image.load('img1.jpg')
label = pyglet.text.Label('Hello, World!!',
                      font_name='Times New Roman',
                      font_size=36,
                      x=window.width//2, y=window.height//2,
                      anchor_x='center', anchor_y='center')

@window.event
def on_draw():
    window.clear()
    label.draw()
    #    image.blit(0,0)

pyglet.app.run()

使用上面的代码,只要image.blit(0,0)被注释掉,我的文本标签就会出现。但是,如果我尝试显示图像,程序崩溃并显示以下错误:

代码语言:javascript
复制
  File "C:\Python33\lib\site-packages\pyglet\gl\lib.py", line 105, in errcheck
raise GLException(msg)
pyglet.gl.lib.GLException: b'invalid value'

如果我尝试使用pyglet.resource.image而不是pyglet.image.load (图像和py文件在同一目录中),我也会得到上面的错误。

有人知道我怎么解决这个问题吗?

我使用的是Python 3.3、pyglet 1.2alpha-1和Windows 8。

EN

回答 2

Stack Overflow用户

发布于 2013-09-07 22:32:23

-including图像的代码fine对我来说运行得很好。我使用的是python 2.7.3,pyglet 1.1.4,代码没有任何问题。您可以考虑暂时尝试其他的python和pyglet版本(直到pyglet有一个新的稳定版本)

票数 3
EN

Stack Overflow用户

发布于 2017-01-14 05:53:40

这不是一个“修复”,但至少可以确定它是否是可修复的(我的不是)。(来自Pyglet mailing group。)

您可以通过运行以下代码(Python 3+)来验证系统是否甚至不支持大于1024的纹理:

代码语言:javascript
复制
from ctypes import c_long
from pyglet.gl import glGetIntegerv, GL_MAX_TEXTURE_SIZE

i = c_long()
glGetIntegerv(GL_MAX_TEXTURE_SIZE, i)
print (i)  # output: c_long(1024) (or higher)

这是系统支持的最大纹理大小。如果是1024,那么任何较大的图片都会引发异常。(唯一的解决办法是,得到一个更好的系统)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17508702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档