2014-10-29 2 views
0

글리프의 비트 맵 이미지를 생성하여 다른 이미지에서 알 수없는 문자의 픽셀 값과 비교할 수 있습니다.SFML을 사용하여 C++에서 비트 맵 이미지에 글리프 렌더링

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

이 나를 위해 잘 작동이 샘플에서 문자 크기가 위의 코드의 경우되지 않은, getGlyphgetTexture가 호출 될 때 동일 함을

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); 

참고.

또한 가독성을 위해 65과 같은 마법 번호 대신 'A'을 사용하십시오.

+0

위대한, 나를 위해 일한 :) 그것은 실패의 원인이 문자 크기의 차이가 있었다. 당신의 도움을 주셔서 감사합니다! – user12066

관련 문제