我已经使用
在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?
答案 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.