当前位置:首页 > 代码 > 正文

代码ttf(代码ttf开头)[20240423更新]

admin 发布:2024-04-23 17:04 130


今天给各位分享代码ttf的知识,其中也会对代码ttf开头进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

ttf字体文件编辑

Windows矢量字体字模的提取(转)很多场合都需要用到汉字显示,如公共汽车上用来报站的电子显示牌、商场用来显示各种商品信息的电子显示牌等。Windows提供了丰富的字体库。如何利用这些字体库进行汉字显示,是需要解决的一个问题。Windows支持GDI字体和设备字体二大类字体。GDI字体存储在硬盘文件中,而设备字体是输出设备所固有的。GDI字体分为三种类型:点阵字体、笔划字体和TrueType字体。点阵字体的字模可以从字库文件中直接得到,而后二种是矢量字体,无法直接得到它们的字模,所以必须将笔划字体和TrueType字体点阵化,以获得所需要的字模。

通常情况下,电子系统的信息显示使用16×16(32字节)的点阵字库,例如在Win98下的Chs16.fon即为16×16(32字节)的字库文件。从中提取字模的方法是:汉字的内码为二个字节,设为a和b。a的大小应该介于0xa1和0xfe之间,其区码为qu=a-0xa0,位码为wei=b-0xa0,汉字字模在字库文件中的位置为offset=((qu-1)×94+(wei-1))×32。

本文主要介绍从Windows的矢量字体中提取字模的方法。此方法已成功地运用于单片机系统设计中,解决了汉字显示的问题。在实际应用中,可以直接调用Win32 API函数,将需要提取字模的汉字文本转化为位图,以此实现汉字的点阵化,用来提取字模。

1 字体设置

首先需要设置字体。Win32 SDK提供了用于字体选择的通用对话框,只需调用ChooseFont函数,其返回值为一个布尔值。具体定义为BOOL ChooseFont(LPCHOOSEFONT lpcf)。调用此函数后,弹出字体选择对话框,在此可以选择所需要的字体、字形、大小等参数。选择完毕后,如果点击了字体选择对话框上的确定键,此函数返回一个非零值;若点击的是取消键,则函数返回一个零值。调用此函数前,还要定义二个变量:

CHOOSEFONT cf;

LOGFONT logfont;

CHOOSEFONT是有十多个字段的结构体,包含了ChooseFont函数用来初始化字体选择对话框的各种信息。LOGFONT也是一个结构体,包含14个字段,定义了字体的各种属性。当点击确定键后,系统通过LOGFONT结构返回选定的字体信息。返回的字体信息保存在CHOOSEFONT结构的lpLogFont字段指定的LOGFONT结构中。

下面是调用ChooseFont函数的代码:

//初始化CHOOSEFONT

cf.lStructSize =sizeof (CHOOSEFONT);

cf.hwndOwner =hwnd; //当前窗口的句柄

cf.hDC =NULL;

cf.lpLogFont =logfont;//系统返回的字体信息保存在此处

cf.iPointSize =0;

cf.Flags =CF_INITTOLOGFONTSTRUCT|CF_

SCREENFONTS|CF_EFFECTS;

cf.rgbColors =0;

cf.lCustData =0;

cf.lpfnHook =NULL;

cf.lpTemplateName =NULL;

cf.hInstance =NULL;

cf.lpszStyle =NULL;

cf.nFontType =0;

cf.nSizeMin =0;

cf.nSizeMax =0;

ChooseFont(cf); //此函数调用后弹出字体选择通用对话框

如果ChooseFont(cf)函数返回非零值,则字体已经选定。选定的字体就保存在logfont变量中。接下来要做的就是创建选定的逻辑字体。可以调用CreateFontIndirect函数创建逻辑字体。CreateFontIndirect函数接受一个指向LOGFONT结构的指针,具体定义为HFONT CreateFontIndirect(CONST LOGFONT?鄢lplf)。代码如下:

HFONT hNewFont=CreateFontIndirect(logfont);

至此字体创建就完成了。直接调用SeletObject函数就可以将创建的逻辑字体选入设备描述表。在位图转换里将使用SelectObject函数将hNewFont选入内存设备描述表。但还要注意一点,在程序结束前,必须调用DeleteObject(hNewFont)函数来释放字体句柄,避免内存泄漏。下面介绍文本转换为位图的具体实现过程。

2 位图转换

此处以提取一个“婷”字的字模为例进行说明。首先需要定义如下变量:

static WCHAR Hanzi[]=“婷”;

static HBITMAP hBitmap;

static int cxBitmap,cyBitmap;

static HDC hdc,hdcMem;

PAINTSTRUCT ps;

SIZE size;

cxBitmap、cyBitmap是所要创建的位图的大小,二者与GetTextExtentPoint32函数得到的文本大小一致,在此处即是“婷”字的大小。

以下是将汉字文本转化为位图的具体方法,一般在WM_PAINT消息中处理。

case WM_PAINT:

hdc=BeginPaint(hwnd,ps);//得到当前窗口的设备句柄

hdcMem=CreateCompatileDC(hdc);//创建一个内存设备描述表

SelectObject(hdcMem,hNewFont);//将创建的字体选入内存设备描述表

GetTextExtendPoint32W(hdcMem,Hanzi,1,size);

 //获取要显示的文本的大小

cxBitmap =size.cx.;

cyBitmap =size.cy;

hBitmap =CreateCompatileBitmap(hdc,cxBitmap,

cyBitmap); //创建一个位图句柄

SelectObject(hdcMem, hbitmap);//将位图选进内存设备描述表

TextOutW(hdcMem,0,0,Hanzi,1);//将汉字画在内存设备描述表的位图上

BitBlt(hdc,0,0,cxBitmap,cyBitmap,hdcMem,0,0,SRC-

COPY); //将位图显示在窗口的客户区,用来观察显示的效果

至此,汉字的点阵化过程就完成了,接下来就应该提取字模。

3 提取字模

提取字模要用到的是GetPixel函数,定义为COLORREF GetPixel(HDC hdc,int nXPos,int nYPos)。此函数返回一个COLORREF类型的值,即nXPos、nYPos所指定的点的RGB值。位图的大小在前文已经确定,在此范围类将每个象素点扫描一次,根据返回的RGB值生成点阵码。因为Windows矢量字体有灰度等级,所以必须选择合适的RGB值,用来判断此点是否有效。白色的RGB值是FFFFFFH,深灰的是808080H,黑色的是000000H。可以选择深灰做为判断依据,当函数返回值小于808080H时,认为此点有效。下面是提取字模的函数,以字节为存储单位,从第一行第一个点开始扫描:

static Zimo[2048];//点阵码存在此数组中

void GetZimo(HDC hdc,int nXPos,int nYPos)

{

  int Hang,Lie; //Hang为扫描的行数

  int temp,i,j,g;

  Hang=nYPos;

  Lie=nXPos;

  if(Lie % 8==0 ){

 Lie=Lie/8; //位图的宽度是8的整数倍,所以

 //只需要Lie/8个字节来存储字模

  Temp=0;

}

  else{

temp=Lie % 8;

 Lie=Lie/8+1;//位图的宽度不是8的整数倍,

  //所以只需要Lie/8+1个字节来存储字模

}

memset(Zimo,0,2048);//将字模数组全置0

for(i=0;iHang;i++){

 for(j=0;jLie;j++){

if( (temp!=0) (j==Lie-1) ){

 for(k=0;ktemp;k++){

 g=(int)GetPixel(hdc,j*8+k,i);

 if(g0x00808080)

 Zimo[i*Lie+j]+=(unsigned

 char)pow(2,7-k);

 }

 }

 else{

for(k=0;k8;k++){

g=(int)GetPixel(hdc,j*8+k,i);

if(g0x00808080)

Zimo[i*Lie+j]+=(unsigned

char)pow(2,7-k);

}

}

  }

 }

}

在WM_PAINT消息中,调用GetZimo(hdcMem,cxBit-

map,cyBitmap)即可得到汉字的字模。在程序的最后,还必须做些扫尾的工作:

DeleteObject(hBitmap);//使用完后必须释放设备描述

//表和位图句柄,避免内存泄漏

DeleteObject(hNewFont);

DeleteDC(hdcMem);

EndPaint(hwnd,ps);

Return 0; //WM_PAINT消息处理完后返回

4 输出结果

以“婷”字为例,弹出字体选择对话框后,字体选新宋体、字形选常规、字号选小二。得出Hang=24,Lie=3,存储72个字节。字模为00H,00H,00H,00H,00H,00H,06H,03H,00H,04H,01H,80H,04H,01H,0CH,04H,3EH,F0H,0CH,00H,00H,7FH,CFH,F8H,08H,88H,10H,08H,88H,10H,18H,8FH,F0H,10H,90H,04H,11H,BFH,FEH,11H,20H,04H,31H,60H,08H,21H,40H,18H,1FH,0FH,E0H,03H,01H,80H,05H,C1H,80H,0CH,C1H,80H,08H,01H,80H,10H,0DH,80H,20H,03H,00H,00H,00H,00H。在纸上画出点阵码,正好是“婷”字,如图1所示。从cxBitmap和cyBitmap可以知道,“婷”字点阵大小是24×24。

5 结束语

利用文本转位图的方法,可以从Windows丰富的字体库中提取各种字体的字模,不再局限于单一的字体,从而丰富了电子显示系统的设计。如果从点阵字库中提取字模,存在着一些不足,最主要的是可供选择的字体太少。另外,使用本文介绍的方法,还可以提取简单的图片点阵,更加丰富了电子显示系统的设计。

这是别人空间里的 以前转的 但是我看不懂 希望对你有帮助

怎样用代码加载ttf字体到UIFont类型

CSS中可以使用font-face属性即可实现调用任何外部等特殊字体。

font-face属性介绍及其实例:

对浏览器的支持:

Firefox、Chrome、Safari 以及 Opera 支持 .ttf (True Type Fonts) 和 .otf (OpenType Fonts) 类型的字体。

Internet Explorer 9+ 支持新的 font-face 规则,但是仅支持 .eot 类型的字体 (Embedded OpenType)。

使用您需要的字体。

在新的 font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。

如需为 HTML 元素使用字体,请通过 font-family 属性来引用字体的名称 (myFirstFont):

使用粗体字体。

您必须为粗体文本添加另一个包含描述符的 @font-face。

文件 "aa.ttf" 是另一个字体文件,它包含了 Sansation 字体的粗体字符。

只要 font-family 为 "myFirstFont" 的文本需要显示为粗体,浏览器就会使用该字体。

通过这种方式,我们可以为相同的字体设置许多 @font-face 规则。

html文件怎么加入TTF字体

font_family:TTF字体。并且,你的电脑中要安装TTF字体。

详解:

首先要安装TTF字体:

1、下载TTF字体。

2、复制到【控制面板——字体文件夹里面】

3、在HTML代码中加以调用。"font-family:ttf"

ttf和tof的区别

字体和飞行时间区别。

TOF是Timeofflight的简写,直译为飞行时间的意思。所谓飞行时间法3D成像,是通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光。

TTF是由美国苹果公司和微软公司共同开发的一种电脑轮廓字体(曲线描边字)类型标准。这种类型字体文件的扩展名是ttf,类型代码是tfil。

如何编辑ttf字体文件

1、首先百度搜索“fontforge”,找一个安全的网站进行下载。

2、下载之后运行安装程序进行安装,

3、安装完成后运行“run_fontforge.exe”打开程序,如图所示:

4、输入文件所在的硬盘分区(如F:\),找到TTF文件所在位置(注意TTF文件存放的目录及文件名称中不要出现中文,也可以直接键入文件位置如:F:\A\B.ttf),打开目标TTF文件:

5、打开TTF文件后会出现一个如下图所示的提示框,点击“Select All”,然后点击“Yes”:

6、稍等后发现TTF文件已经打开了。这时单击菜单栏里的“File”选项,然后找到“Generate Fonts”:

7、点击后会出来一个对话框,在对话框里options按钮上面的选项栏改成“No Outline Font”,右面的选项栏改为“BDF”:

8、然后点击“Generate”,然后点“OK”,就会开始校验和生成点阵字体文件,如果生成过程中弹出什么错误提示直接无视,全部选“Generate”。

9、然后这些BDF文件就是生成的对应大小的点阵字体了:

10、嵌入点阵字体就比较简单了,打开需要嵌入点阵字体的TTF文件,然后菜单栏选File,找到“Import...”:

11、选择需要嵌入的点阵字体文件,然后点击“Import”:

12、等导入完毕后再次点击菜单栏中的File,选择Generate Fonts,弹出的对话框中Option按钮上面的选择栏的选项改为“TrueType”,右边的选项栏的选项改为“In TTF/OTF”:

13、然后点击“Generate”就可以了,

TTF字体文件如何安装

TTF字体文件如何安装

不少小白用户还不知道如何安装TTF字体,而且还遇到TTF文件打不开的问题,对于这些问题,以下是我整理的TTF字体文件如何安装,仅供参考,大家一起来看看吧。

TTF文件是Windows系统下的字体文件,可通过系统自带的字体安装程序直接安装添加字体,比如常用的“仿宋_GB2312”字体就可以通过下载ttf文件自行安装,解决Word、Excel、PPT没有此字体的问题。

TTF字体文件安装步骤

1.若TTF文件关联程序如果没有出错,可以直接双击TTF文件,就会弹窗字体预览安装界面,点击【安装】即可安装字体。若打不开请参考后面的解决方法。

2.字体安装成功后,【安装】按钮为灰色,直接点击右上角的X关闭即可。

TTF字体文件打不开解决方法

问题再现

若双击打开TTF文件提示“该文件没有与之关联的程序来执行该操作。请安装一个程序,或者,如果已安装程序,请在“默认程序”控制面板中创建关联。”

解决方法

1.在运行中打开Regedit.exe,参考Win7运行在哪。

2.展开HKEY_CLASSES_ROOT.ttf,确保数据为 ttffile

3.再找到HKEY_CLASSES_ROOT tffile,确认数据是否跟下图相同。如果不同,找一部正常的电脑,导出注册表文件,然后再导入有问题的电脑即可。

扩展资料:

字体应用

字库是输出设备的一个组成部分。由于汉字不同于西方字体,字符集非常庞大,不能用单字节表示,因此postscript level i的rip不能使用汉字,很多西文软件也不支持汉字。

桌面出版系统使用的字库有两种标准: postscript字库和truetype字库。这两种字体标准都是采用曲线方式描述字体轮廓,因此都可以输出很高质量的字形。

常用的字库标准是truetype字库,truetype字体是windows操作系统使用的唯一字体标准,macintosh计算机也用 truetype字体作为系统字体。truetype字体的最大优点是可以很方便地把字体轮廓转换成曲线,可以对曲线进行填充,制成各种颜色和效果,它可以进一步变形,制作特殊效果字体,因此经常用来制作一些标题字或花样字。 truetype字便宜,字款丰富。但一般情况下truetype字不能直接由rip输出。需要经过特殊处理,比如转成曲线或输出时下载,使用起来较麻烦。速度也要慢一些,尤其是处理大量文字时很不方便,因此不适合用来作为页面的正文文字使用。

truetype字体也用来作为postscript字库的显示字用,各字库公司同时都有这两种标准的产品。因此当使用truetype字体制作版面时,输出时仍然可以将它代换成postscript字库输出

在一些特殊的场合,系统字符集不包含你要用的字体,这时候必须使用自己的字体文件,如甲骨文等古文字处理,一般在系统盘WINDOWSFonts里,直接双击能查看是什么样的字体。

更换字体

如何将TTF文件导入到你的字库里面!

网上很多达人都制作了很多漂亮的字体下载下来后是TTF为后缀名的文件,如何将漂亮的字体成文自己的字体呢?其实很简单 你只需要将你需要的TTF文件放到你的操作系统所在的 windows目录下的` FONTS目录里面就可以啦!!

如:复制到C:widowsfonts 或 C:winntfonts 目录下,或者开始菜单 控制面板 字体。

或者直接打开TTF文件然后点击安装,就会自动安装到C:WindowsFonts 目录下了。

常见问题

1.为什么在安装时会出现"文件损坏"?

这个是因为字库与你的系统产生冲突(特别是xp系统,因为有很多字体以前都是在win98或更早的版本下开发的)去网上下个汉仪和文鼎字的修复工具。

2.为什么安装完字体后我在使用时找不到?

有些字体:例如华康系列的.他们在列表显示为他的相关拼音代码,你可以在下载回来时双击字体可以看到这个字体的名字是什么。然后在选择使用这个字体时,就请选他的拼音字,就是你要的字体了。

3.为什么有些字体的字打不出来?

有些字库必须要在繁体输入的情况下才能打出来的。(例如金梅字库等)

如果使用繁体输入法输入的文字依然无法打出,可能是字体的字库不全,是没办法打出这个字的。

;

关于代码ttf和代码ttf开头的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/365.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载