글리프를 사용한 텍스트 렌더링
C++ API 솔루션. 원하는 글꼴로 텍스트를 표시합니다.
Aspose.Font API 솔루션은 변환, 글리프 조작, 라틴 문자 감지 등 다양한 글꼴 작업 기능을 제공합니다. 텍스트 렌더링과 같은 글리프 조작과 관련된 기능도 포함됩니다.
글리프는 글꼴에서 문자 디자인이 고유하게 정의된 것이며, 기호나 문자의 그래픽 표현입니다. 이 글꼴 단위에 대해 더 깊이 이해하려면 글리프 소개 문서를 읽어 보세요.
이 페이지에서는 글리프를 사용해 텍스트를 표시하는 방법을 설명하지만, 기능에 대한 포괄적인 설명은 글리프 객체 사용 문서에 나와 있습니다. 해당 문서에서 더 많은 C++ 코드 예제와 Aspose.Font가 글리프와 글리프 객체를 다루는 기능을 확인할 수 있습니다. 또한 Aspose의 Github 프로젝트 에서 전체 예제와 데이터 파일을 확인할 수 있습니다.
글리프를 사용해 텍스트를 입력하려면 다음이 필요합니다:
풍부한 기능과 강력함을 갖춘, 사용하기 쉬운 문서 조작 및 변환 API인 Aspose.Font for C++ API.
NuGet 패키지 관리자를 열고 Aspose.Font를 검색하여 설치합니다. 또한 패키지 관리자 콘솔에서 다음 명령을 사용할 수 있습니다.
Package Manager Console Command
PM> Install-Package Aspose.Font
C++를 사용한 글리프 텍스트 렌더링
글리프를 사용해 텍스트를 렌더링하려면 일반적으로 다음 단계가 필요합니다:
- 폰트 파일을 메모리로 로드합니다. 여기서는 Type1Font 객체와 같은 폰트 객체를 생성하고, 폰트 파일 경로를 전달해야 합니다.
- 텍스트를 해당 글리프 ID로 디코딩합니다. 이를 위해 텍스트의 각 문자를 폰트의 인코딩 객체에 전달하고 해당 글리프 ID로 디코딩합니다.
- 각 글리프의 외곽선을 가져옵니다. 외곽선은 문자 모양을 정의하는 경로이며, 이는 Font 객체의 GetGlyphOutline() 메서드를 사용하여 얻을 수 있습니다.
- GraphicsPath 객체와 같은 그래픽 객체를 사용해 각 글리프의 외곽선을 그립니다. IGlyphOutlinePainter 인터페이스를 구현한 객체를 생성하여 글리프 외곽선을 그리는 역할을 수행합니다.
- 그래픽 객체의 DrawPath() 메서드를 사용해 각 글리프 외곽선을 그려 텍스트를 표시합니다.
텍스트 렌더링을 위한 C++ 코드
using Aspose::Font::Glyphs;
using Aspose::Font::Rendering;
using Aspose::Font::RenderingPath; class GlyphOutlinePainter: IGlyphOutlinePainter
RenderingText::GlyphOutlinePainter::GlyphOutlinePainter(System::SharedPtr<System::Drawing::Drawing2D::GraphicsPath> path)
{
_path = path;
}
void RenderingText::GlyphOutlinePainter::MoveTo(System::SharedPtr<Aspose::Font::RenderingPath::MoveTo> moveTo)
{
_path->CloseFigure();
_currentPoint.set_X((float)moveTo->get_X());
_currentPoint.set_Y((float)moveTo->get_Y());
}
void RenderingText::GlyphOutlinePainter::LineTo(System::SharedPtr<Aspose::Font::RenderingPath::LineTo> lineTo)
{
float x = (float)lineTo->get_X();
float y = (float)lineTo->get_Y();
_path->AddLine(_currentPoint.get_X(), _currentPoint.get_Y(), x, y);
_currentPoint.set_X(x);
_currentPoint.set_Y(y);
}
void RenderingText::GlyphOutlinePainter::CurveTo(System::SharedPtr<Aspose::Font::RenderingPath::CurveTo> curveTo)
{
float x3 = (float)curveTo->get_X3();
float y3 = (float)curveTo->get_Y3();
_path->AddBezier(_currentPoint.get_X(), _currentPoint.get_Y(), (float)curveTo->get_X1(), (float)curveTo->get_Y1(), (float)curveTo->get_X2(), (float)curveTo->get_Y2(), x3, y3);
_currentPoint.set_X(x3);
_currentPoint.set_Y(y3);
}
void RenderingText::GlyphOutlinePainter::ClosePath()
{
_path->CloseFigure();
}
System::Object::shared_members_type Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::GetSharedMembers()
{
auto result = System::Object::GetSharedMembers();
result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_path", this->_path);
result.Add("Aspose::Font::Examples::WorkingWithTrueTypeAndOpenTypeFonts::RenderingText::GlyphOutlinePainter::_currentPoint", this->_currentPoint);
return result;
}자주하는 질문
1. Aspose.Font를 통해 글꼴은 어떻게 렌더링됩니까?
이 API 솔루션을 사용하여 글꼴을 렌더링하려면 Aspose.Font.Rendering 및 Aspose.Font.Renderers 의 엔터티가 필요합니다. 네임스페이스 먼저 IGlyphOutlinePainter 메서드를 구현한 다음 DrawText() 메서드를 만듭니다. 글꼴 너비를 계산하고 렌더링 텍스트 기능을 호출하는 유틸리티 메서드를 만듭니다.
2. 글리프가 포함된 텍스트를 렌더링할 때 어떤 요소에 주의해야 합니까?
글리프가 포함된 텍스트를 렌더링할 때 글꼴 선택, 힌트, 커닝 및 추적, 글리프 측정항목, 색상 및 대비 등과 같이 정확하고 시각적으로 매력적인 결과를 보장하기 위해 고려해야 할 몇 가지 중요한 요소가 있습니다.
3. 글꼴 힌트란 무엇입니까?
힌트는 특히 작은 크기나 저해상도 화면에서 텍스트의 명확성과 가독성을 유지하는 데 도움이 될 수 있습니다.