Я не знаю, существует ли для этого стандарт, но я бы не сказал, что FreeImage отражает изображение по вертикали, это просто способ хранения данных пикселей. Если вы хотите прочитать данные с текстурой, сгенерированной OpenGL, вы можете перевернуть изображения по коду, используя FreeImage_FlipVertical
до FreeImage_GetBits
. Я предполагаю, что вы используете FreeImage_GetBits
для доставки данных в текстуру, сгенерированную в OpenGL, если вы читаете изображение с помощью линий сканирования, вы можете загрузить данные снизу вверх.
Heads-up: ЕслиВы используете несколько форматов изображений. Вероятно, у вас есть и другие проблемы, связанные с хранением данных, поэтому просто сообщите, что при использовании GetBits и GetScanLine в официальной документации FreeImage говорится: «Вы должны правильно интерпретировать эти байты, согласно результатам FreeImage_GetBPP
, FreeImage_GetRedMask
, FreeImage_GetGreenMask
и FreeImage_GetBlueMask
", поэтому, если у вас есть другие проблемы с загрузкой изображения в OpenGL, вы можете проверить примеры здесьдля интерпретации данных: http://freeimage.sourceforge.net/documentation.html