Как сделать глиф жирным, используя библиотеку freetype?

Я работал с глифом, я знаю, что для того, чтобы какой-то шрифт был жирным, нужно загрузить жирную версию этого шрифта. Но чего я хочу добиться, так это сделать обычный шрифт жирным шрифтом, используя свободный тип. Я получил курсив с помощью FT_TRANSFORM, теперь я хочу сделать его жирным.
Есть идеи? Является ли это возможным?
Я прочитал справочное руководство по FreeType API, но не смог найти удачу!
С уважением

0

Решение

Чтобы эмулировать смелость, вы можете напечатать один и тот же глиф дважды с одним смещением px.
Я не думаю, что вы получите идеальные результаты, но, по крайней мере, что-то.

1

Другие решения

Я написал это раньше. Здесь я добавил строку для второй печати, чтобы сделать буквы жирными, как упомянуто @ 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
}
}
}
0

По вопросам рекламы [email protected]