OpenGL 和 GIMP 图像文件导出为 .c 文件
我用 GIMP 绘制了一个图像文件并将其保存为 .c 文件。 然后我在 OpenGL 代码中使用以下内容将图像加载到 屏幕:
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glRasterPos2i(x_disp, 0);
glDrawPixels(80, 80, GL_RGB, GL_UNSIGNED_BYTE, gimp_image.pixel_data);
但是加载的图像看起来颠倒了 180 度。 我想知道我是否可以在 OpenGL 中提供一个选项,以便 我可以使用与 GIMP 中相同的方向渲染图像, 顶部朝上,左侧朝左,也许 glPixelStore 或其他一些 OpenGL 函数调用来指定如何 解压像素?
I have drawn an image file with the GIMP and saved it as a .c file.
Then I used the following in my OpenGL code to load the image onto
the screen:
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glRasterPos2i(x_disp, 0);
glDrawPixels(80, 80, GL_RGB, GL_UNSIGNED_BYTE, gimp_image.pixel_data);
However the image loaded appear flipped 180 degrees upside down.
I wonder whether there is an option I can supply in OpenGL so that
I can have the image rendered with the same orientation as in GIMP,
with the top side up, and the left side on the left, perhaps with
glPixelStore or some other OpenGL function call to specify how to
unpack the pixels?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
OpenGL 假定图像数据位于左下角,而大多数图像处理程序将其放置在左上角。
而不是 glDrawPixels 使用纹理,那么您可以只翻转纹理坐标。无论如何,glDrawPixels 是一个极其缓慢的 CPU 周期吸盘,并且已从 OpenGL-3 及更高版本中删除。只是不要使用它。
OpenGL assumes image data in the lower left corner, whereas most image manipulation programs place it in the upper left corner.
Instead of glDrawPixels use a texture, then you can just flip texture coordinates. glDrawPixels is a extremly slow CPU-cycle sucker anyway and has been removed from OpenGL-3 and later. Just don't use it.