Repository navigation
find-font 1.0.0
find-font 1.0.0 —— 第一个正式版。Windows 10 1803+ / Windows 11,绿色版免安装。
下载
| 文件 | 说明 |
|---|---|
find-font-1.0.0-win-x64.zip |
解压后双击 FindFont.exe |
需要 .NET 8 桌面运行时(Desktop Runtime)。没装的话引导器会弹框说明并给出下载链接,不会静默失败。
1.0.0 新增
- 可变字体坐标轴:读
fvar表,在右栏「档案」列出wght 100–900、wdth 75–100这类轴范围;静态字体不显示这一段。 - 嵌入许可位:读 OS/2
fsType,标出「禁止嵌入 / 仅可预览与打印 / 可安装(允许嵌入) / 仅位图嵌入」,并注明是否禁止子集化。修正了此前把 BitmapOnly 位误读成「仅可编辑嵌入」的错误。只提示不阻断,装不装由你和授权方定。 - 装给当前用户,不需要管理员权限:新增第二条安装路径,写
HKCU+%LOCALAPPDATA%\Microsoft\Windows\Fonts。左栏两个按钮分别对应「装给我 / 所有人」,卸载时按文件位置自动选对路径。 - 测试分层:用例按
unit/integration/ui标注,CI 先跑纯逻辑那层再跑全量;发布任务在windows-2022与windows-latest两档上并行,NuGet 包缓存跨运行复用。
完整能力
全字体离屏渲染预览 / 300 ms 防抖搜索与命中高亮 / 分类与四种排序 / 2–3 字体对比 / 拖放安装 / 多字面 .ttc 展开 / 字形缺失检测(区分「cmap 无映射」与「映射到空字形」)/ 失效登记清理(不动字体文件)/ 单实例 / 记忆上次状态 / PerMonitorV2 DPI / 崩溃日志 / Mica 材质。
实现要点
- 全程离屏
FormattedText+RenderTargetBitmap出冻结位图,XAML 里不出现FontFamily绑定,规避 WPF 加载上千套字形的内存暴涨(1380 个字体约 160 MB)。 - 直读 sfnt 的
name/OS/2/head/cmap/loca/glyf/maxp/fvar表,0.2–0.4 ms/文件;不依赖GlyphTypeface(43 ms/文件)。 - 2–4 条 STA 渲染线程按缓存键分派,首屏 12 行冷渲染从 1.1 s 降到 150 ms。
VirtualizingStackPanel+ 位图 LRU(96 MB 字节预算,不是按条数)。
已知限制
- 旧式
.fon位图字体不是 sfnt 容器,以文件名做显示名(不标记为异常)。 .ttc/.otc按文件头声明的成员展开,未独立声明的隐藏字面取不到。- 字形缺失检测只认
glyf轮廓;真 CFF 轮廓的.otf只报「无映射」,不判断字形是否为空。 - 缺字检测的依据是当前样本文字这一小组码位,回答的是「我这串字能不能显示出来」,不是「这个字体完整吗」。
- 可变字体只读轴范围,不解析
STAT表,也不提供轴滑杆。