可能重复:
如何使用 OpenGL 加载 8 位 bmp?
我需要尽可能多地加载大量图像,然后将它们作为动画播放。因此,我想最小化每个图像的大小。
我的问题是,如果我加载 jpeg 图像文件,我的机器会将其存储为 bmp 格式吗?目前,我正在使用 OpenGL 加载 bmp 图像(每个大约 3.5 MB)。600 个 bmp 文件已经超出了我的记忆。我怎样才能加载更多,比如 2000。
您可以考虑以更适合动画的格式存储图像。想到了视频。
如果您只需要一次图像 - 显示后立即从内存中丢弃它们。
使用 DXT 打包图像。随着质量的轻微下降,您将获得 x4/x8 压缩比。
检查你的 OpenGL 设置,你是否使用自动生成的 mipmap,你需要它们吗?
我的问题是,如果我加载 jpeg 图像文件,我的机器会将其存储为 bmp 格式吗?
您的机器会将其作为原始像素保存在内存中,除非您使用的是压缩纹理格式,但这与 JPEG 有很大不同。
文件格式对硬件和 OpenGL 没有意义。
我怎样才能加载更多,比如 2000。
你不应该。如果您正在播放动画,请在该图像显示时加载图像,然后将其删除。对于 OpenGL,您应该使用它glTexSubImage2D
来替换纹理对象的内容。