我正在尝试使用 libpng 将图像拆分为不同的块。原因是我无法在我目前正在使用的硬件上加载大于 512x512 的纹理。我之前通过混合使用 SDL 和 SDL_Image 来完成此操作。我基本上使用 SDL_BlitSurface 中的 srcrect 参数来复制图像的一部分,然后将其转换为 OpenGL 纹理。将其与水平然后垂直的简单循环相结合,我能够获得一组纹理,每个最大为 512x512。然后只需将它们渲染到正确的位置即可。
现在,我没有使用 SDL 的奢侈,所以我认为可以通过 libpng 自己直接执行此操作。基于一些谷歌搜索,我认为这只是使用 png_read_rows 来读取我需要的部分的问题。但这就是我卡住的地方,我不确定该怎么做。
另外,如果您想知道为什么我不只是将图像拆分为 gimp/photoshop/paint 或其他什么,那是因为我不控制它们并且在运行时下载它们。
我在这里先向您的帮助表示感谢。