我可以通过预加载一堆jpeg图像而不是bmp来节省内存吗?

时间:2012-08-16 03:31:32

标签: opengl animation jpeg preload bmp

  

可能重复:
  How can I load 8 bit bmp with OpenGL?

我需要尽可能多地加载大量图像,然后将它们作为动画播放。因此,我想最小化每个图像的大小。

我的问题是,如果我加载一个jpeg图像文件,我的机器会以bmp格式存储它吗?目前,我正在使用OpenGL加载bmp图像(每个大约3.5 MB)。 600个bmp文件已经超出了我的记忆。我怎么能加载更多,比如2千。

2 个答案:

答案 0 :(得分:0)

您可以考虑以更加动画友好的格式存储图像。想到视频

如果您只需要一次图像 - 在显示后立即从内存中丢弃它们。

使用DXT打包图像。如果质量略有下降,则可获得x4 / x8压缩比。

检查OpenGL设置,是否使用自动生成的mipmap,是否需要它们?

答案 1 :(得分:0)

  

我的问题是,如果我加载了一个jpeg图像文件,我的机器会以bmp格式存储吗?

您的机器会将其作为原始像素保存在内存中,除非您使用的是压缩纹理格式,但与JPEG非常不同。

文件格式对硬件和OpenGL毫无意义。

  

如何加载更多,比如2千。

你不应该。如果您正在播放动画,请在显示时加载图像,然后将其删除。对于OpenGL,您应该使用glTexSubImage2D来替换纹理对象的内容。