glGenTextures的图像格式

时间:2015-01-26 11:53:36

标签: python opengl

我已经使用

在python中转换了一个图像
from PIL import Image
img = Image.open('myPixelArt.bmp')

然后我打电话给

im = glGenTextures(1,img)

但事实证明im = 0

还有很多其他功能

我已经尝试了几乎所有东西来显示这个图像,我想知道我在这个功能中的用途。

glGenTextures中第二个参数的格式是什么(不是根据.bmp或.png而是根据矩阵大小,数字的范围是0到1还是高达255等)?

如何在python中找到img的格式?

并且glGenTextures应该返回0?

1 个答案:

答案 0 :(得分:1)

你错过了glGenTextures的作用。此函数仅为OpenGL纹理创建处理程序。您正在使用c语言签名,这仅在python文档中提供信息。

此函数返回n整数,该整数将用作纹理的名称,c中的正确语法为:

void glGenTextures(GLsizei n,  GLuint * textures);

但是你没有使用c,所以对于python,你必须使用正确的签名:

 textures = glGenTextures   ( n )

其中texture必须是一个数组,用于保存函数返回的名称。

您可以为单个纹理设置n = 1:

texture = glGenTextures(1)

要为新纹理配置和设置数据,您必须使用glBindTexture将名称绑定到上下文,并使用glTexImage2D设置纹理的像素数据。使用glTexParameter设置一些参数。

有关完整示例,请参阅here.