首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi GDI+ 學習筆記 (22):文字繪製基礎 (DrawString、字體建立、渲染品質)

     編輯:Delphi

GDI+ 文字輸出入門:點座標、矩形範圍、多種字體建立方式、5 種渲染模式

DrawString 為 GDI+ 核心文字繪製函數,支援 Unicode、抗鋸齒、ClearType、次像素定位。本文涵蓋四種字體建立方式與五種 TextRenderingHint 模式視覺比較。

1. 完整建立流程 (FontFamily + Font)


g := TGPGraphics.Create(Canvas.Handle);
sb := TGPSolidBrush.Create(MakeColor(0, 0, 255));
fontFamily := TGPFontFamily.Create('宋體');
font := TGPFont.Create(fontFamily, 48, FontStyleRegular, UnitPixel);
g.DrawString('Hello World!', -1, font, MakePoint(10.0, 10.0), sb);

2. 簡化建立 (字體名 + 大小)


font := TGPFont.Create('宋體', 32.0); // 預設 UnitPoint
g.DrawString('再見, 2007!', -1, font, MakePoint(10.0, 10.0), sb);

3. 從 VCL Canvas 字體建立


font := TGPFont.Create(Self.Canvas.Handle); // 同步表單 Font 屬性
g.DrawString('再見, 2007!', -1, font, MakePoint(10.0, 10.0), sb);

4. 文字渲染品質模式比較


g.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel);
g.DrawString('SingleBitPerPixel', -1, font, MakePoint(10.0, 10.0), sb);
g.SetTextRenderingHint(TextRenderingHintAntiAlias);
g.DrawString('AntiAlias', -1, font, MakePoint(10.0, 60.0), sb);
g.SetTextRenderingHint(TextRenderingHintClearTypeGridFit);
g.DrawString('ClearTypeGridFit', -1, font, MakePoint(10.0, 110.0), sb);

TextRenderingHint 對照表

Delphi微軟品質/效能特點
TextRenderingHintSingleBitPerPixelSingleBitPerPixel低/快單色位圖,無提示
TextRenderingHintSingleBitPerPixelGridFitSingleBitPerPixelGridFit中/快單色 + 網格提示
TextRenderingHintAntiAliasAntiAlias高/中灰階抗鋸齒,無提示
TextRenderingHintAntiAliasGridFitAntiAliasGridFit最高/慢灰階 + 網格提示
TextRenderingHintClearTypeGridFitClearTypeGridFit最高/慢次像素 ClearType,最銳利
TextRenderingHintSystemDefaultSystemDefault依系統遵循系統 ClearType 設定

FontStyle/Unit 常數表

(同上篇,含 Regular/Bold/Italic/Underline/Strikeout 及 Pixel/Point/Inch/MM/Document/Display/World)

選擇 ClearTypeGridFit 可獲得最佳螢幕閱讀體驗;列印輸出建議 AntiAliasGridFit。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved