我正在使用 SDL 的 IMG_Load() 函数在 Linux 和 Mac OS X 上加载 PNG 文件。它可以工作,但奇怪的是,在 Linux 上我得到了 24 BitsPerPixel 和 OS X 32 bpp 的格式。
SDL_Surface *image = IMG_Load("path/to/image.png");
std::cerr << (int)image->format->BitsPerPixel << std::endl;
两个系统上的图像文件完全相同。
$ file data/test_scenario.png
data/test_scenario.png: PNG image data, 640 x 400, 8-bit/color RGB, non-interlaced
从文件输出来看,我认为 24bpp 是正确的。
知道为什么会发生这种情况以及如何规避这种情况吗?