首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

常用字体介绍(freetype)

字体显示原理 字体和图片一样,存储为像素,绘制的时候需要找到字体对应的像素显示 字体文件格式 ttf,只包含一种字体格式,矢量字体 ttc,ttc包含多个ttf文件,包含多种字体格式 otf,ttf的扩展...,opentype字体 freetype,开源的可以移植的字体引擎 truetype,ttf文件,跨平台字体格式 opentype,truetype字体的延伸,增加PostScript字体支持 通过解析文件数据...,生成图像数据映射表,在gdi中调用绘制 gdi支持的字体格式:点阵字体,笔画字体和TrueType字体 字体加载 静态加载,ttf等文件,编译成o文件,打包进程序中 动态加载,指定字体的搜索路径,启动后在系统中搜索字体...创建字体 fontcreator imgui 绘制字体可以参考,imgui框架中加载绘制字体的代码

93320

假装可变字体

可变字体 上图中的两个动画,一个文字直接变粗,一个渐渐变粗,我觉得后者会更有趣。...但普通的字体可达不到这种效果,例如微软雅黑,无论怎么调整它的 FontWeight,实际上它也只有三种粗细: 这时候我们需要可变字体,可变字体(Variable fonts)是OpenType字体规范上的演进...具体来说请参考这篇文档: https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide 简单来说,可变字体是可以实现随意改变字重...假装可变字体 可是我不知道怎么在 WPF 里用可变字体,而且为了一个小小按钮的小小动画,居然要添加一个几十兆大小的字体,这性价比实在低,低到不能接受。...改变 StrokeThickness 看起来就像改变 FontWeight,这就实现了我想要的效果: 当然,用这种方式假装的可变字体的字形和原本的字形会有差别,但用在局部的动画没什么大的问题。

61720
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    dotnet C# 使用 FreeType 读取和绘制字体

    本文将和大家介绍在 C# 里面简单使用 SharpFont 对 FreeType 的封装,读取 ttf 等字体文件信息,绘制出某个文字到图片文件 由于本文使用的 SharpFont 库已经很久没有维护了...@"C:\windows\fonts\simfang.ttf"); 接下来的代码将演示如何获取某个字符在字体里面的信息,以及将这个字体用这个字体渲染到本地图片文件 获取字符在字体里面的信息,需要先获取到字符在字体里面的索引...,代码如下 uint glyphIndex = face.GetCharIndex('林'); 以上代码就可以获取到 林 字在字体文件里面的索引 接下来为了将字体加载到 slot...里面,需要先设置一点必要的初始化参数 // 设置字体大小,修复 SharpFont.FreeTypeException:“FreeType error: Invalid size...,修复 SharpFont.FreeTypeException:“FreeType error: Invalid size handle.”

    57210

    TCloudNumber 字体开源,邀您体验可变字体魔法

    字可变,字形窄,字同宽,字距松 TCloudNumber 默认字重对比常规字体提升 20%,并提供常用的细体(Light)和粗体(Bold),除此之外应对更多场景,我们希望和技术能更好结合,增加了可变字体能力...可变字体是单个二进制文件,大大减小了文件大小,利用更紧凑、更快速的方式来为产品提供动态字体,字重展示更加动态灵活。...尽管字体数量规模有限,但凭借技术与设计的紧密结合,未来将在更多字体应用场景和图标能力迭代升级,除了字重以外也会针对字宽进行可变调整。...字体源文件可前往 “官网设计-字体” 中进行下载,除了可变字体以外,为了保证兼容性我们还提供了 3 个常用字重源文件。...如在网站上使用可变字体能力可以使用 CSS 能力,字重(由 wght 标签表示)对于可变字体,1 到 1000 之间的任何数字都是有效的。

    2.7K20

    Linux应用开发:嵌入式Linux下矢量字体运用

    一、freetype简介 FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,可以非常方便我们开发字体显示相关的程序功能。...它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。...#include FT_STROKER_H #define LCD_DEVICE "/dev/fb0" int lcd_fd; struct fb_var_screeninfo vinfo;//可变参数...初始化freetype库*/ error=FT_Init_FreeType(&FreeTypeConfig.library); if(error) { printf("freetype字体库初始化失败...在指定位置显示文本*/ /* wcslen() 函数用于计算宽字符的个数,支持区分中文和英文字符,文本需要在UTF-8编码下。

    4.5K30

    什么是可变对象吗?用图说话

    可变与不可变 列表(list)是一个可变容器,可变与不可变是一对很微妙的概念,因为网上经常出现,所以再重点总结下。 创建一个列表 a = [1,3,[5,7],9,11,13],存储示意图: ?...因此,对列表而言,它能增加或删除元素,所以它是可变的。 但是,如果仅仅在列表a中做这一步操作: a[2].insert(1,6) #在`a[2]`(也是一个列表)中插入元素6 插入后可视化图: ?...对于“可变”这个概念而言,这就不是真正让a可变的操作。 tuple就是一个典型的不可变容器对象,对它而言,同样也可以修改嵌套对象的取值,但这并没有真正改变tuple内的元素。...不可变容器对象的本质:一旦创建后,长度就被唯一确定。但是,对于list而言,长度会有增有减,所以它是可变的。

    35210

    百问LCD Framebuffer应用开发 - freetype搭建与使用

    1.5.2 Freetype理论介绍 ​ 开源的Freetype字体引擎库它提供统一的接口来访问多种字体格式文件,从而实现矢量字体显示。...我们只需要移植这个字体引擎,调用对应的API接口,提供字体关键点,就可以让freetype库帮我们实现闭合曲线,填充颜色,达到显示矢量字体的目的。...字体文件结构如上图 ​ Charmaps表示字符映射表,字体文件可能支持哪一些编码,GBK,UNICODE,BIG5还是别的编码,如果字体文件支持该编码,跟进编码,通过charmap,找到对应的glyph...,一般而言都支持UNICODE码。...有了以上基础,我们想象一个文字的显示过程 ①给定一个文字吗‘A’(0x41),‘中’(GBK,UNICODE ,BIG5)可以确定它的编码值; ②跟进编码值,从枝头文件中通过charmap找到对应的关键点

    9010

    freetype的交叉编译及在嵌入式linux上的简单使用及改变字体背景和颜色

    FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, OpenType, Type1, CID, CFF, Windows...它支持单色位图、反走样位图的渲染。FreeType库是高度模块化的程序库,虽然它是使用ANSI C开发,但是采用面向对象的思想,因此,FreeType的用户可以灵活地对它进行裁剪。...关于freetype的详细信息可以参考freetype的官方网站:https://www.freetype.org/来获取更多相关的信息。...以往单片机中使用中文字库时,免不了需要制作各种字体大小的字模。且有的制作的效果不是很好,需要多大的字体需要提前备好。如果能用上FreeType,这些都不是问题了,且还能各种的变换。...freetype源码下载地址: freetype官网 freetype2.8.1下载 交叉编译步骤: tar zxvf freetype-2.8.1.tar.gz cd freetype-2.8.1/

    5.1K10

    「Adobe国际认证」字体与字体有区别吗?字体区别的真正“奥义”秘籍,你掌握了吗!

    字体与字体:区别 平面设计师需要学习和理解很多排版术语,它们加在一起可能会让人有点迷惑。 字体和字体是两个词汇词,有时会落入设计师的抽认卡堆栈的底部。他们的定义通常永远不会被记住。让我们改变它。...字体与字体 一字型,称为字体家族在CSS,指的是字母和数字(字母怎么看)的设计。字体是指字体中的不同粗细和大小。 考虑这两个术语的一个有用方法是将字体视为音乐专辑,而字体是构成专辑的歌曲。...术语字体和字体起源于哪里? 在计算机出现之前(但在恐龙出现之后),“字体”和“字体”这两个词并不容易混淆,因为时代的技术使人们很容易看出它们在基本层面上的不同。 从历史上看,打印机不是数字机器。...每种字体都放置在自己的工作案例中,因为尽管它们属于相同字体的一部分,但每种字体都具有可区分的外观:粗细、宽度、样式、视觉尺寸、等级和效果。...“字体”和“字体”之间的区别已经有一段时间了。 我们大多数人都可以继续使用“字体”这个词来形容 Times New Roman,无论它有什么变化,永远不要让“字体”这个词成为我们词汇的一部分。

    70000

    关于 Java 的可变参数你真的了解吗?

    我们都知道 Java 支持可变参数的形式定义方法,这种语法糖在某些时候可以简化我们的代码,但是关于可变参数是如何实现的以及其他的更多细节,你真的知道吗?今天阿粉就带你来了解一下。...这里我们需要注意几个点: 可变参数只能作为函数的最后一个参数,在其前面可以有也可以没有任何其他参数; 由于可变参数必须是最后一个参数,所以一个函数最多只能有一个可变参数; Java 的可变参数,会被编译器转型为一个数组...可变参数方法的调用 可变参数方法的调用跟其他方法的调用没什么区别,这里要说明的是,我们除了通过可变参数进行调用之外,还可以通过传入数组的形式来进行调用,如下所示: public static void...method1(3); } 通过可变参数和数组的形式,这两种调用形式本质上是一样的;另外可变参数的个数也可以为 0。...Object 可变参数 看到这样有小明就要问了,那我可不可以创建一个基于 Object 的可变参数方法,这样子这个方法不就是可以接受所有类型的参数了吗?

    51320

    Java 中的 String 真的是不可变吗?

    我们都知道 Java 中的 String 类的设计是不可变的,来看下 String 类的源码。 ? 可以看出 String 类是 final 类型的,String 不能被继承。...其值 value 也就是对字符数组的封装,即 char[],其值被定义成 private final 的,说明不能通过外界修改,即不可变。 String 真的 "不可变 " 吗? 来看下面这个例子。...Java中的String真的是不可变吗? 所以说,这里的字符串并不是可变,只是变更了字符串引用。...String 真的真的真的 "不可变 " 吗? 上面的例子肯定是不可变的,下面这个就尴尬了。 ?...通过反射,我们改变了底层的字符数组的值,实现了字符串的 “不可变” 性,这是一种骚操作,不建议这么使用,违反了 Java 对 String 类的不可变设计原则,会造成一些安全问题。 是不是又涨姿势了?

    89620

    Font屌:中文图标字体(并支持SVG格式)

    最近入手高清版的 MacBook Pro 之后,开始研究高清屏下一些图标怎么去展示的问题,一通瞎搜索,发现最好的方式是使用字体图标。...Font屌中文图标字体,可用于 Web 和 iOS 应用的中文图标字体,同时提供了国内各种常用网站、应用、知名企业的徽标 SVG 源文件(包括如微信(wechat)、腾讯QQ、QQ空间、微博等)。...主要功能有: 支持 Retina 屏幕:没有 @2x 的图片,不需要 JavaScript,因为使用了矢量字体。另外次像素平滑技术将使你的图标更加清晰锐利。...一个字体包含 70 个图标:客户端浏览器只下载一个字体,就能拥有 70 个常用中文网站、知名企业的图标。...支持 iOS:不仅能在 Web 中使用,还提供了能在 iOS 下使用的类,并且可以使用 CocoaPods 安装。 提供 SVG 源文件:任何人都能改进这些图标,加入更多常用中文网站、应用的图标。

    75820
    领券