C++ 如何使用freetype库使glyph加粗?

C++ 如何使用freetype库使glyph加粗?,c++,freetype,glyph,C++,Freetype,Glyph,我一直在使用glyph,我知道要使某些字体加粗,必须加载该字体的加粗版本。但我想实现的是使用自由字体使常规字体加粗。我已经用FT_变换实现了斜体风格,现在我想把它也加粗。 有什么想法吗?可能吗? 我读过FreeTypeAPI参考指南,但没有找到运气! 关于要模拟粗体,可以使用一个像素偏移量打印同一字形两次。 我不认为你会得到完美的结果,但至少是一些东西。我以前写过这篇文章。在这里,我为第二次打印添加了一行,使字母加粗,如上面提到的@c-smile。我不推荐这样的把戏。如果有一个标准的方法,那就更

我一直在使用glyph,我知道要使某些字体加粗,必须加载该字体的加粗版本。但我想实现的是使用自由字体使常规字体加粗。我已经用FT_变换实现了斜体风格,现在我想把它也加粗。 有什么想法吗?可能吗? 我读过FreeTypeAPI参考指南,但没有找到运气!
关于

要模拟粗体,可以使用一个像素偏移量打印同一字形两次。
我不认为你会得到完美的结果,但至少是一些东西。

我以前写过这篇文章。在这里,我为第二次打印添加了一行,使字母加粗,如上面提到的@c-smile。我不推荐这样的把戏。如果有一个标准的方法,那就更好了

void DrawFTGlyph(FT_Bitmap* pBitmap, int x, int y)
{
    int i, j, p, q;
    int xMax = x + pBitmap->width;
    int yMax = y + pBitmap->rows;
    D3DXCOLOR color = D3DCOLOR_RGBA(255, 255, 255, 1);

    for (i = x, p = 0; i < xMax; i++, p++)
    {
        for (j = y, q = 0; j < yMax; j++, q++)
        {
            if (i < 0 || j < 0 || 
                i >= texture.Size().Width() || 
                j >= texture.Size().Height())
            {
                continue;
            }

            BYTE intensity = pBitmap->buffer[q * pBitmap->pitch + p];
            D3DXCOLOR pixel(color.r * intensity, color.g * intensity, color.b * intensity, color.a * intensity);

            texture.SetPixel(i, j, pixel);
            texture.SetPixel(i + 2, j + 2, pixel); // Second print
        }
    }
}

我知道这是一个很老的问题

SFML代码显示了如何执行此操作:


重要的一点似乎是FT_Outline_Enbolden和FT_Bitmap_Enbolden函数。

你能指导我怎么做吗?你到底需要指南做什么?如何使用FreeType或什么来渲染glyph?使用FreeType来渲染glyph以获得粗体字符