Я пишу игру, используя Android NDK и FreeImage, чтобы загружать изображения в мою игру. Он загружает изображения в формате BGR. Можно загрузить в формате RGB? Или мне нужно поменять местами R и B вручную?Почему FreeImage загружает изображение в формате BGR?
Edited
Мой аппарат Samsung Galaxy S4 (ARMv7 archtecture). Вот код «
FIMEMORY* fiStream = FreeImage_OpenMemory((BYTE*)data, size);
FREE_IMAGE_FORMAT fif = FreeImage_GetFileTypeFromMemory(fiStream);
if (FreeImage_FIFSupportsReading(fif))
{
dib = FreeImage_LoadFromMemory(fif, fiStream, 0);
}
if (!dib)
return;
data_ = FreeImage_GetBits(dib);
width_ = FreeImage_GetWidth(dib);
height_ = FreeImage_GetHeight(dib);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width_, height_, 0, GL_RGB, GL_UNSIGNED_BYTE, data_);
Как вы определяете, что это FreeImage, который изменяет ваш заказ RGB? – usr2564301
Я использую glTexImage2D с типом = GL_RGB, и изображение появляется в неправильных цветах, когда я устанавливаю тип = GL_BGR, он отображается в правильных цветах – haksist
пару вопросов: 1) правильно ли изображение отображается с помощью какой-либо другой утилиты для его отображения? 2) это компьютерная архитектура Big Endian или Little Endian. настоятельно рекомендуем опубликовать соответствующий код. – user3629249