找回密码
 立即注册
楼主: tonyhsie

ListAssFonts: 小工具,分析字幕使用的字型 (2023/06/13 更新)

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-1-30 21:21:26 | 显示全部楼层
    Kanade 发表于 2019-1-30 21:01
    字幕档是指显示为红色但实际安装过的字体嘛

    基本上除錯文件、字幕文件就好
    字型檔暫時還不需要

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-1-30 23:21:33 | 显示全部楼层
    Kanade 发表于 2019-1-30 21:56
    我按F12导出debug用的文件时,导出一半时会显示找不到指定的模块(msls31.dll),再按一次F12,会导出全 ...

    我更新了 ListAssFonts,v190130 這一版應該已解決 debug 文件導出的問題了
    你先試試看,在這個版本下,原先已安裝字型卻顯示紅字的問題,是否已經解決了


    如果一樣沒解決,再麻煩重新給我最新的 debug 文件,謝謝


    更新日誌

    v190130

    新功能 or bug 修正
      1. 程式可能會重啟數次以完成工作 (解決原先無法取得某些字型的問題)
      2. 之前產生的 "installedFonts.debug.txt" 會保留,不會覆蓋掉
      3. 如果產生了 "RemoveFontSubsets" 資料夾,只打開資料夾而不一一打開各文件

    字型相關

      4. 支援 "Source Han Code JP", "黑體-", "ヒラギノ ProN" 等字型
      5. 支援 "思源 / Noto" super/mega/ultra OTCs 等超大字型檔案


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-1-31 01:26:48 | 显示全部楼层
    1.我用的是2K屏,每次打开软件,软件是模糊的,扔个字幕文件进去软件就会消失一会随后恢复高清,能否禁止DPI缩放;
    程式自行關掉再重開是正常的,另外也沒有對 DPI 作任何處理

    2.导出的debug 文件后面有几个字体显示 输入文件或数据流不符合要求的文件格式规格,这是什么意思
    這些字型檔案可能有問題,程式無法從檔案裡取得字型名稱
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-2-19 23:44:08 | 显示全部楼层
    yzwduck 发表于 2019-2-19 22:25
    好像是 2 年多前楼主提的问题了,貌似没人回答,那我就回复一下特殊字体 2 的原理。
    tl;dr 那是 ASS 的坑

    原來如此,感謝您的解惑


    因為我是在 Windows+VSFilter 環境下使用的

    所以列出的問題也是以 VSFilter 及其後繼者實際碰到的為主

    libass 或許有相同問題,或許沒有問題,兩種都有可能

    附:对于问题 1,我试了一下 @FOT-マティス Pro B 和 @FOT-Matisse Pro B 的显示效果是一样的。
    這個問題在 http://bbs.acgrip.com/forum.php?mod=viewthread&tid=3372 這一串裡有進一步的討論過

    也有附上截圖,可以參考看看

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-2-26 19:10:29 | 显示全部楼层
    双子★魔刃 发表于 2019-2-26 18:22
    楼主,我这有一份字幕用你的软件检测不出来,提示“(No any font found!)”

    我這邊正常


    如果你那邊還是找不出問題所在,按 F12 會產生除錯文件 installedFonts.debug.txt
    你再把它傳上來我看看

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-2-26 21:38:06 | 显示全部楼层
    双子★魔刃 发表于 2019-2-26 20:30
    试了几次发现好像用管理员模式运行软件就比较正常,而直接打开则容易出问题
    ...

    照理說應該不需要用管理員模式來執行,納悶....
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-3-22 15:42:44 | 显示全部楼层
    muveex 发表于 2019-3-22 15:24
    报告一个bug:
    windows 10 1809改变了字体的安装和存储方式,用户自行安装字体不再需要管理员权限,默认情况 ...
    今天發現 Windows 10 1809 有一種新的字型安裝方式
    會把字型安裝到 C:\Users\<使用者名稱>\AppData\Local\Microsoft\Windows\Fonts


    目前 ListAssFonts 並不會去查看這個字型資料夾還有相關的 Reg key

    所以可能無法處理以這種方式安裝的字型 (可能會無法列出或無法拷貝)


      

    Win10 1809 用戶在安裝字型時請選 "為所有使用者安裝",不要選 "安裝",可以避免 ListAssFonts 發生相關問題


    謝謝回報,目前比較忙,有空的話我再來解決這個問題

    我好奇的是,為什麼要為個別用戶新增字型而不是為整個系統新增呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-3-22 20:31:18 | 显示全部楼层
    本帖最后由 tonyhsie 于 2019-3-22 20:33 编辑
    muveex 发表于 2019-3-22 16:09
    错误的字体会影响整个系统。例如我曾经安装过一个名为 萝莉体 的字体,发现它的英文名称是Heiti SC,设计 ...

    有問題的字型移除掉就好了 你既然能裝上去,肯定也能移除掉吧


    個別用戶自己裝字型限自己使用,我目前還真的想不出有什麼場合有這種需要

    除非用別人的電腦,又沒有管理者權限,又想裝字型時?


    另一方面,這種安裝方式其實還挺麻煩的

    畢竟是新的機制,舊有的程式不見得會支援這種作法,另外也看不出這樣作的優點在哪裡
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-3-23 14:05:50 | 显示全部楼层
    举个例子,我们这里上千台电脑都以Active Directory连在一起,一个人在一台电脑上存储数据以后,换一台电脑用相同的用户名密码登录,不需要任何手动操作就能把这些文件和设置从服务器上转移过来。一般用户没有管理员权限,也禁止执行或安装除现有程序和MS Store App以外的所有程序,但能做的事情很多,一般足够用了。如果我们是一个设计公司,那可能会希望设计师们能自己有权限来自行安装卸载不同的字体。

    其實我並不是要你 "想像出一種可能會用到 user font 的場合",而是想知道 "實際確實會用到 user font 的情況是怎麼樣的"

    以你舉的例子來說,假設有這種設計師好了,在 Win 10 1809 之前他們沒辦法作業嗎? 不可能吧
    所以代表 user font 對他們來說也並非一個必要功能,不是嗎?


    就我看來,ListAssFonts 面向的用戶,或者說一般用戶,需要使用 user font 功能的機會並不是很高

    畢竟 LAF 也是兩年多前就有的東西了,當時沒有 user font 這玩意也沒什麼問題
    現在雖然有這玩意了,但我看不出一般用戶把字型安裝成 user font 而非 system font 來用,能帶來什麼好處?

    对一般程序而言系统如何使用字体是透明的;对一般程序而言,获取字体列表比较好的实现方式不是枚举注册表而是调用API,比如.NET 里的 InstalledFontCollection 对象。


    InstalledFontCollection 有不少漏網字型,並不是尋找系統上所有字型的一個完美解答


    另外,你可以試看看 Aegisub 能不能找到 user font 吧

    你可能以為 user font 應該能直接無痛被所有程式支援,而現實卻不是那麼美好
    那難道你要一個個去請不支援 user font 的程式作者去改版來支援 user font,還是選擇自己照舊使用 system font?


    這問題我當初升級到 1809 時就考慮過了,我選了後者,所以 LAF 支援 user font 的計畫也就擱置了,畢竟 user font 的必要性真的不大

    http://bbs.acgrip.com/forum.php? ... 25&fromuid=8179


    另外有個問題,如果 user 沒有管理員權限,無法自行安裝字型

    那他有權限把系統字型 copy 出來嗎?  這我不太清楚

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2019-3-24 05:41:42 | 显示全部楼层
    测试了一下,Aegisub(最新是2014年的3.2.2版)可以列出user font,可以正常保存字幕,但是font collector不能复制导出user font。不太清楚它是怎么实现的。我记得列举字体有好几种不同的API和库刚才找到了这里bit.ly/2FsiVOV    ,Aegisub的Font Collector调用了get_installed_fonts(),这个函数是枚举注册表的(作者虽然写了一个GdiFontFileLister,但它里面仍然是调用了这个列举注册表的函数),于是就报错了。
    但是,一般的功能可以正常工作(比如Style Editor),原因是是直接调用了wxWidgets框架的wxFontEnumerator::GetFacenames(),而wxWidgets for windows部分源码bit.ly/2U6c4Uw  中似乎是调用了Windows GDI的EnumFontFamiliesEx(),所以跟着正常工作了。不过这个API列出来的很多字体名称前带@,这些是垂直书写字体,与InstalledFontCollection结果不同。
    也许对LAF 或者Aegisub font collector来说最适合的还是直接枚举注册表吧。
    目前 LAF 也能辨識出字幕有此字型,加上系統是否已安裝此字型,這些功能都正常,有問題的部分只是無法把字型複製出來

    對不支援 user font 的字型程式來說,這種結果應該都是一樣的

    窮舉 Registry 是必然的,看起來你也是專業的程式工作者,或許你再想想就能知道原因了

    可以的。LAF本身是以普通用户权限运行的,这也是它在1809上可以保存系统字体的原因。



    Windows升级A搞挂了B其实挺常见的,而且bug也多,比如stack overflow上有个非常诡异的问答:win10系统无法预览和安装字体,结果最后发现解决方法竟然是完全没有关系的“启用Windows防火墙”…… superuser.com/questions/957907/unable-to-install-fonts-on-windows-10


    哈哈,真虧他能找出這個辦法


    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表