글리프를 사용하여 텍스트 렌더링
C++ API 솔루션. 원하는 글꼴로 텍스트를 표시합니다.
Aspose.Font API 솔루션은 변환, 글리프 조작, 라틴 기호 감지 등 글꼴 작업을 위한 풍부한 기능을 제공합니다. 일부 기능은 텍스트 렌더링과 같은 글리프 조작과 관련이 있습니다.
글리프는 서체에서 문자의 고유한 디자인 또는 기호 또는 문자의 그래픽 표현입니다. 이 글꼴 단위에 대해 자세히 알아보려면 Glyph 소개 기사를 읽어보세요.
이 페이지에서는 글리프를 사용하여 텍스트를 표시하는 방법을 설명하지만 기능에 대한 포괄적인 설명은 글리프 개체 사용하기 . 여기에서 더 많은 C++ 코드 예제를 찾고 특히 글리프 및 글리프 개체 작업을 위한 Aspose.Font 기능에 대해 배웁니다. Aspose Github 프로젝트 에서 완전한 예제와 데이터 파일을 배울 수도 있습니다.
글리프로 텍스트를 입력하려면 다음이 필요합니다.
Aspose.Font for C++ API는 기능이 풍부하고 강력하며 사용하기 쉬운 문서 조작 및 변환 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. 글꼴 힌트란 무엇입니까?
힌트는 특히 작은 크기나 저해상도 화면에서 텍스트의 명확성과 가독성을 유지하는 데 도움이 될 수 있습니다.