2009-10-21 5 views
3

투명한 비트 맵에 String을 그리고 나서 대상 캔버스에 A를 그립니다. 그러나 어떤 경우에는 문자 주위에 검은 색 테두리가 있습니다. 이미지를 투명한 비트 맵으로 그릴 때 검정색 경계선을 그릴 때

Bitmap* tempImg = new Bitmap(1000, 1000, PixelFormat32bppARGB); 
Graphics tempGr(tempImg); 
tempGr.Clear(Color(0, 255,255,255)); 
Gdiplus::SolidBrush* brush = new SolidBrush(Color(255, 255, 0, 0)); 
Gdiplus::FontFamily fontFamily(L"Times New Roman"); 
Gdiplus::Font* font = new Gdiplus::Font(&fontFamily, 19, FontStyleRegular, UnitPixel); 
RectF rec(400, 400, 1000, 10000); 
tempGr.DrawString(
    L"Merry Chrismas", 
    -1, 
    font, 
    rec, 
    NULL, 
    brush 
    ); 

Graphics desGr(hdc); 
desGr.Clear(Color::Gray); 
desGr.DrawImage(tempImg , 0,0, 1000, 1000); 

desGr에 문자 무승부

어떤 글꼴 크기에 대한 블랙 보드가 있습니다.

이 문제를 어떻게 피할 수 있습니까? 많은 감사!

+0

블랙 보드에 대해 거의 혼란스럽지 않습니다. 검은 경계를 의미하는 것이 궁금합니다. – Elemental

+0

미안하지만, 검은 색 테두리입니다. – user25749

+0

DrawImage를 사용하여 비트 맵의 ​​크기를 조절하는 것과 동일한 문제가 발생합니다. – moogs

답변

2

나는 여기서 문제는 텍스트를 투명한 배경 위에 그려 넣는다는 것이다. 당신은 tempGr.Clear에 대한 호출 후이 줄을 추가 시도 할 수

...

tempGr.TextRenderingHint = TextRenderingHint.AntiAlias; 

PS - C++에 미안하지 않도록 정확한 구문은)

+0

많은 감사합니다! – user25749

1

난 그냥 XNA에서이 문제를 해결 :

전경색과 동일한 배경을 지 웁니다. 유일한 차이점은 배경에 알파 = 0, 알파로 전경 >> 0

검은 색 테두리는 배경과 다양한 색상의 전경을 혼합 한 것에서옵니다. 현상을 완전히 이해하려면 배경을 약간 대조되는 색으로 치우십시오.

관련 문제