【发布时间】:2015-04-26 18:42:51
【问题描述】:
我已经使用库 libsoil-dev 成功加载了一个 .jpg 图像,正如使用命令为 Debian 找到的那样
uchar* img = SOIL_load_image(pfname_texture.c_str(),
&img_width, &img_height, NULL, 0);
后两个参数分别是 int* channels 和 int force_channels,无论具体含义如何,但它们似乎涉及 alpha 通道之类的东西。
使用上述命令,我知道图像的宽度和高度(以像素为单位)。
现在我想水平翻转它(意味着左右边缘交换边)。如果我知道 uchar* img 的大小,这将很容易。但是,就目前情况而言,我不知道,因为我无法确定有多少 uchars 构成一个像素。另外,我不知道像素在内存中是如何排序的(按行、按列、从上到下,反之亦然,你可以命名它)。有什么想法吗?
【问题讨论】:
-
阅读我在偶然发现 glTexImage2D(..,type=GL_UNSIGNED_BYTE,..) 的教程中使用的代码。鉴于我的程序有效(忽略镜像纹理),这似乎是一个像素的大小。这总是真的吗?另外:仍然缺少订购信息...
-
回到我自己的问题...这似乎很有用:opengl.org/wiki/Pixel_Transfer#Pixel_layout