我以为这是我的错,但是编写了更简单的代码仍然失败:
FIBITMAP* infloat = FreeImage_ConvertToRGBF(bitmap);
FreeImage_Save(fifpng, bitmap, "D:\\orig.png", 0); //THIS WORKS OK
FreeImage_Save(fifexr, infloat, "D:\\justTest.exr", 0); //THIS WORKS OK
FIBITMAP *pImage = FreeImage_ConvertTo24Bits(infloat);
if (pImage == NULL)
printf("CONVERSION FAILED\n");
它在 FreeImage_ConvertTo24Bits 和 FreeImage_ConvertTo32Bits 中失败了,但我无法想象为什么因为 infloat 似乎没问题而且位图也没问题。
请注意,如果我制作: FIBITMAP *pImage = FreeImage_ConvertTo24Bits(bitmap);
它也可以。
欢迎任何帮助!