Сохранить растровое изображение FreeType в файл
Я играл с FreeType для рендеринга текста в OpenGL/DirectX. В целях отладки я хочу визуализировать глифы в файл (bmp, png, ect), чтобы я мог упаковать их вместе в виде таблицы спрайтов шрифтов. Для этого я использую FreeImage. Я создаю растровое изображение FreeImage с помощью функции FreeImage_ConvertFromRawBits. Поскольку FreeType генерирует 8-битные глифы, я передаю 0 для параметров маски для FreeImage_ConvertFromRawBits. Смотрите код ниже.
/* Initialize FreeType */
/* Create Face object */
/* Set character size */
int charCode = (int)'a';
int charIndex = FT_Get_Char_Index(ftFace, CHAR_CODE);
FT_Load_Char(face, charIndex, FT_LOAD_DEFAULT);
FT_Render_Glyph(face->glyph, FT_RENDER_MODE_NORMAL)
/* Check for errors */
int bpp = 8;
int width = face->glyph->bitmap.width;
int height = face->glyph->bitmap.rows;
int pitch = face->glyph->bitmap.pitch;
unsigned char* buffer = face->glyph->bitmap.buffer;
FIBITMAP* dib = FreeImage_ConvertFromRawBits(buffer, width, height, pitch, bpp, 0, 0, 0);
/* Check for errors */
FreeImage_Save(FIF_BMP, dib, "Glyph.bmp");
Проблема в том, что изображение выглядит странно. Вы можете сказать, что это похоже на глиф, но это все запутано. Если я попытаюсь сохранить изображение в формате png, изображение все равно будет испорчено, но везде со случайными цветами. Я не могу найти пример сохранения растрового изображения FreeType в файл изображения в любом месте. Спасибо!