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

ttf裁剪源代码(ttf字体库裁剪工具)

admin 发布:2022-12-19 15:50 130


本篇文章给大家谈谈ttf裁剪源代码,以及ttf字体库裁剪工具对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

c++如何调用指定目录下的TTF字体文件

1.在MFC下,可以使用CreateFont创建并加载字体。BOOL CreateFont(int nHeight,int nWidth,int nEscapement,int nOrientation,int nWeight,BYTE bItalic,BYTE bUnderline,BYTE cStrikeOut,BYTE nCharSet,BYTE nOutPrecision,BYTE nClipPrecision,BYTE nQuality,BYTE nPitchAndFamily,LPCTSTR lpszFacename);通过指定的一些特征初始化CFont对象。下面分别介绍每个参数:nHeight:指定字体高度(逻辑单位)。有三种取值:0,字体映射器将高度值转换为设备单位,并与可用字体的字符元高度进行匹配;=0,字体映射器使用默认的高度值;0,字体映射器将高度值转换为设备单位,用其绝对值与可用字体的字符高度进行匹配。nHeight转换后的绝对值不应超过16384个设备单位。nWidth:指定字体中字符的平均宽度(逻辑单位)。nEscapement:指定偏离垂线和显示界面X轴之间的角度,以十分之一度为单位。偏离垂线是穿过一行文本中第一个字符和最后一个字符的直线。nOrientation:指定每个字符的基线和设备X轴之间的角度,以十分之一度为单位。nWeight:指定字体磅数(每1000点中墨点像素数)。可取0到1000之间的任意整数值。bItalic:指定字体是否为斜体。bUnderline:指定字体是否带有下划线。bStrikeOut:指定字体是否带有删除线。nCharSet:指定字体的字符集。预定义的字符集:ANSI_CHARSET;BALTIC_CHARSET;CHINESEBIG5_CHARSET;DEFAULT_CHARSET;EASTEUROPE_CHARSET; GB2312_CHARSET; GREEK_CHARSET;HANGUL_CHARSET; MAC_CHARSET; OEM_CHARSET; RUSSIAN_CHARSET; SHIFTJIS_CHARSET;SYMBOL_CHARSET; TURKISH_CHARSET。韩国Windows:JOHAB_CHARSET;中东地区Windows:HEBREW_CHARSSET,ARABIC_CHARSET;泰国Windows:THAI_CHARSET。应用程序可以使用DEFAULT_CHARSET以允许字体名和大小完全指定逻辑字体,如果指定的字体名不存在则可能会用任意字符集的字体来代替,所以为避免不可预料的结果,应谨慎使用DEFAULT_CHARSET。nOutPrecision:指定输出精度。输出精度定义了输出与要求的字体高度、宽度、字符方向、移位和间距等的接近程度。它的取值及含义如下(只能取其一):OUT_CHARACTER_PRECIS;未用。OUT_DEFAULT_PRECIS:指定缺省的字体映射器状态。OUT_DEVICE_PRECIS:在当系统里有多种字体使用同一个名字时指示字体映射器选择一种设备字体。OUT_OUTLINE_PRCIS:在Windows NT中此值指示字体映射器从TrueType和其他基于边框的字体中选择。OUT_RASTER_PRECIS:在当系统里有多种字体使用同一个名字时指示字体映射器选择一种光栅字体。OUT_STRING_PRECIS:此值没有被字体映射器使用,但是当列举光栅字体时它会被返回。OUT_STROKE_PRECIS:没有被字体映射器使用,但是当列举TrueType字体、其他基于边框的字体和向量字体时它会被返回。OUT_TT_ONLY_PRECIS:指示字体映射器仅从TrueType字体中选择,如果系统中没有安装TrueType字体,则字体映射返回缺省状态。OUT_TT_PRECIS:在当系统里有多种同名的字体时指示字体映射器选择一种TrueType字体。当操作系统含有多种与指定名字同名的字体时,应用程序可以使用OUT_DEVICE_PRECIS,OUT_RASTER_PRECIS和OUT_TT_PRECIS值来控制字体映射器如何选择一种字体,例如,如果操作系统含有名字Symbol的光栅和TrueType两种字体,指定OUT_TT_PRECIS使字体映射器选择TrueType方式(指定OUT_TT_ONLY_PRECIS强制字体映射器选择一种TrueType字体,尽管这会给TrueType字体换一个名字)。nClipPrecision:指定裁剪精度。裁剪精度定义了怎样裁剪部分超出裁剪区域的字符。它的取值及含义如下(可取一个或多个值):CLIP_DEFAULT_PRECIS:指定缺省裁剪状态。CLIP_CHARACTER_PRECIS:未用。CLIP_STROKE_PRECIS:未被字体映射器使用,但是当列举光栅字体、向量字体或TrueType字体时它会被返回。在Windows环境下,为保证兼容性,当列举字体时这个值总被返回。CLIP_MASK:未用。CLIP_EMBEDDED:要使用嵌入式只读字体必须使用此标志。CLIP_LH_ANGLES:当此值被使用时,所有字体的旋转依赖于坐标系统的定位是朝左的还是朝右的。如果未使用此值,设备字体总是逆时针方向旋转,但其他字体的旋转依赖于坐标系统的定向。CLIP_TT_ALWAYS:未用。nQuality:指定字体的输出质量。输出质量定义了GDI将逻辑字体属性匹配到实际物理字体的细致程度。它的各个取值及含义如下(取其一):DEFAULT_QUALITY:字体的外观不重要。DRAFT_QUALITY:字体外观的重要性次于使用PROOF_QUALITY时,对GDI光栅字体,缩放比例是活动的,这意味着多种字体大小可供选择,但质量可能不高,如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用。PROOF_QUALITY:字符质量比精确匹配逻辑字体字体属性更重要。对GDI扫描字体,缩放比例是活动的,并选择最接近的大小。尽管当使用PROOF_QUALITY时,选择字体大小并不完全匹配,但字体的质量很高,并没有外观上的变形。如果有必要,粗体、斜体、下划线、strikeout字体可被综合起来使用。nPitchAndFamily:指定字体间距和字体族。低2位用来指定字体的间距,可取下列值中的一个:DEFAULT_PITCH,FIXED_PITCH,VARIABLE_PITCH。高4位指定字体族,取值及含义如下(取其一):FF_DECORATIVE:新奇的字体,如老式英语(Old English)。FF_DONTCARE:不关心或不知道。FF_MDERN:笔划宽度固定的字体,有或者无衬线。如Pica、Elite和Courier New。FF_ROMAN:笔划宽度变动的字体,有衬线。如MS Serif。FF_SCRIPT:设计成看上去象手写体的字体。如Script和Cursive。FF_SWISS:笔划宽度变动的字体,无斜线。如MS Sans Serif。应用程序可以用运算符OR将字符间距和字体族组合起来给nPitchAndFamily赋值。字体族描述一种字体的普通外观,当所有的精确字样都不能使用时,可用它们来指定字体。lpszFacename:指定字体的字样名的字符串。此字符串的长度不应超过30个字符。Windows函数EnumFontFamilies可以枚举出当前所有可用字体的字样名。如果lpszFacename为NULL,则GDI使用一种与设备无关的字体。返回值:此函数成功则返回TRUE,否则返回FALSE。CreateFont函数初始化CFont对象后,此字体就能够被选作任何设备上下文的字体了。此函数并不会创建一个新的Windows GDI字体,只是从GDI的物理字体中选择了一个最匹配的字体。在创建一个逻辑字体时,大部分参数可以使用默认值,但一般情况下都会给出参数nHeight和lpszFacename的指定值,如果没有给nHeight和lpszFacename参数设定取值,则创建的逻辑字体与设备相关。当使用CreateFont函数初始化一个CFont对象完成后,就能够使用CDC::SelectObject函数来为设备上下文选择字体了,并且还能够在不再使用此CFont对象时删除它。2.例子:

//下面的代码演示了如何实现字体的空心效果//应用程序主窗口的重绘函数void CMyWnd::OnPaint(){ // 获得窗口的客户区设备上下文句柄 CPaintDC dc(this); // 更改当前字体 LOGFONT lf; dc.GetCurrentFont()- GetLogFont(lf); CFont font; CFont *pOldFont; // 保存设备上下文最初使用的字体对象 lf.lfCharSet=134; lf.lfHeight=-150; lf.lfHeight=-150; lf.lfWidth=0; strcpy(lf.lfFaceName, "隶书"); font.CreateFontIndirect( lf); pOldFont=dc.SelectObject( font); dc.SetBkMode(TRANSPARENT); // 更改当前画笔 CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); CPen *pOldPen; pOldPen=dc.SelectObject( pen); // 开始一个路径 dc.BeginPath(); dc.TextOut(10, 10, "空心字"); dc.EndPath(); // 绘制路径 dc.StrokePath(); //可以用dc.StrokeAndFillPath()函数来代替,不过该函数会使用当前刷子填充路径的内部。 dc.SelectObject(pOldFont); dc.SelectObject(pOldPen);}

如何编辑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字体库裁剪工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

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

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


取消回复欢迎 发表评论:

分享到

温馨提示

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

联系我们反馈

立即下载