Visual Studio 2008 — визуализация глифа для растрового изображения в C ++ с использованием SFML

Я хочу создать растровое изображение глифа, чтобы сравнить его со значениями пикселей неизвестных букв в другом изображении.

Я использую Visual Studio 2008, мой проект на C ++, и я использую SFML. Я могу нормально загрузить шрифт из файла ttf, и я попытался сделать что-то вроде:

sf::Font myFont;
myFont.loadFromFile("Path\\arial.ttf");

sf::Texture myTexture = myFont.getTexture(48);
sf::Image textureImage = myTexture.copyToImage();

sf::Glyph myGlyph = myFont.getGlyph(65, 12, false); // get the 'A' glyph

sf::Image glyphImage;
glyphImage.create(myGlyph.bounds.width, myGlyph.bounds.height, sf::Color::White);
glyphImage.copy(textureImage, 0, 0, myGlyph.textureRect);

Я считаю, что это не работает, потому что я просто создаю изображение из той части текстуры, где расположен глиф, а не из значений пикселей самого глифа.

Может кто-нибудь, пожалуйста, помогите?

0

Решение

Это прекрасно работает для меня:

unsigned int size = 20;
sf::Glyph glyph = font.getGlyph('A', size, false);
sf::Texture bitmap = font.getTexture(size);

sf::Image image;
image.create(glyph.bounds.width, glyph.bounds.height);
image.copy(bitmap.copyToImage(), 0, 0, glyph.textureRect);

Обратите внимание, что в этом примере размер символов одинаков, когда getGlyph а также getTexture называются, чего не было в вашем коде выше.

Также вместо магического числа вроде 65 использование 'A' для удобочитаемости.

0

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


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