Index: src/FTGlyph/FTPixmapGlyph.cpp =================================================================== --- src/FTGlyph/FTPixmapGlyph.cpp (revision 1224) +++ src/FTGlyph/FTPixmapGlyph.cpp (working copy) @@ -91,14 +91,28 @@ unsigned char* dest = data + ((destHeight - 1) * destWidth * 2); size_t destStep = destWidth * 2 * 2; - for(int y = 0; y < srcHeight; ++y) - { - for(int x = 0; x < srcWidth; ++x) - { - *dest++ = static_cast(255); - *dest++ = *src++; - } - dest -= destStep; + if (FT_PIXEL_MODE_MONO == bitmap.pixel_mode) { + // convert the bitmap to gray map + for(int y = 0; y < srcHeight; ++y) + { + for(int x = 0; x < srcWidth; ++x) + { + *dest++ = static_cast(255); + *dest++ = static_cast((src[x >> 3] & (128 >> (x & 7))) ? 255 : 0); + } + dest -= destStep; + src += bitmap.pitch; + } + } else { + for(int y = 0; y < srcHeight; ++y) + { + for(int x = 0; x < srcWidth; ++x) + { + *dest++ = static_cast(255); + *dest++ = *src++; + } + dest -= destStep; + } } destHeight = srcHeight;