文档章节

GDI+ 学习记录(22): 输出文本

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 774
阅读 4
收藏 0
//输出文本
var
  g: TGPGraphics;
  sb: TGPSolidBrush;
  fontFamily: TGPFontFamily;
  font: TGPFont;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  sb := TGPSolidBrush.Create(MakeColor(0,0,255));
  fontFamily := TGPFontFamily.Create('宋体');
  font := TGPFont.Create(fontFamily, 48, FontStyleRegular, UnitPixel);
  {参数 3 参考: 文本样式类型表; 参数 4 参考: 坐标单位类型表}

  g.DrawString('Hello World!', -1, font, MakePoint(10.0,10.0), sb);
  {参数 2 是输出文本的长度, -1 表示全部输出;
   参数 4 中的坐标不能用整数, 因为函数指定类型是: TGPRectF}

  sb.Free;
  fontFamily.Free;
  font.Free;
  g.Free;
end;

 
 
 
 
 

 

 

  
//简单输出文本 var g: TGPGraphics; sb: TGPSolidBrush; font: TGPFont; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,0,0)); font := TGPFont.Create('宋体',32.0); g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb); sb.Free; font.Free; g.Free; end;
//使用窗体字体属性输出文本 var g: TGPGraphics; sb: TGPSolidBrush; font: TGPFont; begin g := TGPGraphics.Create(Canvas.Handle); sb := TGPSolidBrush.Create(MakeColor(255,0,0)); font := TGPFont.Create(Self.Canvas.Handle); //根据窗体的字体属性建立 g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb); sb.Free; font.Free; g.Free; end;
//文本呈现质量 var g : TGPGraphics; FontFamily: TGPFontFamily; Font: TGPFont; sb: TGPSolidBrush; begin g := TGPGraphics.Create(Canvas.Handle); FontFamily := TGPFontFamily.Create('Times New Roman'); Font := TGPFont.Create(FontFamily, 32, FontStyleRegular, UnitPixel); sb := TGPSolidBrush.Create(MakeColor(255, 0, 0, 255)); 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.Free; FontFamily.Free; Font.Free; sb.Free; end;
文本样式类型表:

Delphi 微软 说明
FontStyleBold Bold 加粗文本。
FontStyleItalic Italic 倾斜文本。
FontStyleRegular Regular 普通文本。
FontStyleStrikeout Strikeout 中间有直线通过的文本。
FontStyleUnderline  Underline  带下划线的文本。


坐标单位类型表:

Delphi 微软 说明
UnitDisplay Display 指定显示设备的度量单位。通常,视频显示使用的单位是像素;打印机使用的单位是 1/100 英寸。
UnitDocument  Document  将文档单位(1/300 英寸)指定为度量单位。
UnitInch Inch 将英寸指定为度量单位。
UnitMillimeter Millimeter 将毫米指定为度量单位。
UnitPixel Pixel 将设备像素指定为度量单位。
UnitPoint Point 将打印机点(1/72 英寸)指定为度量单位。
UnitWorld World 将世界坐标系单位指定为度量单位。


文本呈现质量模式:

Delphi 微软 说明
TextRenderingHintAntiAlias AntiAlias 在无提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到改善。由于关闭了提示,主干宽度差可能会比较明显。
TextRenderingHintAntiAliasGridFit AntiAliasGridFit 在有提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到大大改善,但同时会增加性能成本。
TextRenderingHintClearTypeGridFit ClearTypeGridFit 在有提示的情况下使用每个字符的标志符号 ClearType 位图来绘制字符。这是质量最高的设置。用于利用 ClearType 字体功能。
TextRenderingHintSingleBitPerPixel SingleBitPerPixel 使用每个字符的标志符号位图来绘制字符。不使用提示。
TextRenderingHintSingleBitPerPixelGridFit  SingleBitPerPixelGridFit  使用每个字符的标志符号位图来绘制字符。提示用于改善字符在主干和弯曲部分的外观。
TextRenderingHintSystemDefault SystemDefault 在有系统默认呈现提示的情况下使用每个字符的标志符号位图来绘制字符。将采用用户为系统选择的任何字体修匀设置来绘制文本。


本文转载自:http://www.cnblogs.com/del/archive/2007/12/27/1017439.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
C# WinForm开发系列 - GDI+

UI(User Interface)编程在整个项目开发过程中是个颇为重要的环节,任何好的解决方案若没有良好的用户界面呈现给最终用户,那么就算包含了最先进的技术也不能算是好程序。UI编程体现在两个方...

长征2号
2017/11/14
0
0
深度解读 - Windows 7核心图形架构细致分析(转贴)

原帖地址:http://technet.microsoft.com/zh-cn/library/ee921514.aspx 如现在大家所想的那样, Windows7 其实是 Windows Vista 的改进版。 Windows 7 在 Windows Vista 的基础上进行了大量的...

迈克老狼1
2012/12/23
0
0
ASP.NET 如何做出简单的验证码

如果说要做验证码,那不得不提的就是GDI+绘图了。我们都知道验证码是以图片形式展示的,而且是动态生成的,这样就需要我们去画出它。 科普一下,什么是GDI+? GDI+是图形设备接口(GDI)的高...

我不会抽烟
2014/07/29
0
0
GDI+图像处理学习笔记——改变图像的透明度

GDI+是WindowsXp和windows Server 2003中的一个子系统,主要用于处理系统的绘制消息。GDI+是GDI的扩展,其继承了GDI的有点并在其基础上进行了改进,包括增加了一些GDI无法绘制的图形函数,同...

晨曦之光
2012/05/23
500
0
VC 6.0 配置和使用gdi+

GDI+ GDI+是Windows XP中的一个子系统,它主要负责在显示屏幕和打印设备输出有关信息,它是一组通过C++类实现的应用程序编程接口。顾名思义,GDI+是以前版本GDI的继承者,出于兼容性考虑,W...

junwong
2012/03/23
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么只有你每次提交代码,log里面会出现merge

http://www.cnblogs.com/Sinte-Beuve/p/9195018.html

踏破铁鞋无觅处
5分钟前
0
0
如何学习大数据:spark发布程序

一、对于spark程序只是用于默认的spark包的情况 直接点击pcakage 将程序进行在linux当中进行发布 客户端模式:测试 spark-submit --class com.keduox.App \ --master yarn \ --deploy-mode ...

架构师springboot
5分钟前
0
0
oracle job(定时任务)

创建 定时任务 job declare job number;BEGIN DBMS_JOB.SUBMIT( JOB => job, -- job任务的唯一标识(自动生成) WHAT => 'INSERT into TEXTL (id) VALUES(TEXT......

骑羊放狼灬
9分钟前
0
0
Spring声明式事务在抛出异常时不回滚(RollBack)

Spring声明式事务默认只在RuntimeException时Rollback(回滚),不当的try catch会导致事务不回滚。 spring事务默认运行时异常回滚,RuntimeException 配置时添加异常回滚 rollback-for="Th...

叶落花开
9分钟前
0
0
赋能时空云计算 阿里云数据库时空引擎Ganos上线

随着移动互联网、位置感知技术、对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像...

阿里云云栖社区
11分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部