我认为这是我的错,但制作更简单的代码却仍然失败:
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);
它也可以。
欢迎任何帮助!