找回密码
 立即注册
楼主: 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  楼主| 发表于 2023-7-29 20:08:00 | 显示全部楼层
    tmdtmdtmdqq 发表于 2023-7-29 19:12
    调教了一个下午GPT,终于调教出来了。.net原生方法获取Postscript name。支持TTF/OTF/TTC格式。

    CFF比较 ...




    很多年前就寫過 ttf parser 了,三年前徹底拿掉這些 code
    因為有更好的方式來處理字型檔案,不需要自己動手


    btw,我覺得你的研究精神很好,花點時間,你很快就可以寫出一個自己的字型工具
    就像我當年寫出 ListAssFonts 一樣

    (認真的,不是嘲諷)


    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2023-10-13 07:14:04 | 显示全部楼层
    hpt 发表于 2023-10-13 01:31
    想要个指定字体文件夹的同时还能检查系统安装的字体

    好像有一个BUG,就是指定的字体文件夹没有字体或者字 ...
    想要个指定字体文件夹的同时还能检查系统安装的字体

    這兩個需求,無法在同一個 ListAssFonts 裡完成,需要雙開,個別指定不同參數


    ListAssFonts 的字型來源,只會在「已安裝的字型」跟「指定字型資料夾」中二選一

    如果你看到按鈕顯示 "Installed Fonts",那表示它使用的是已安裝的字型

    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2023-11-30 00:01:53 | 显示全部楼层
    折光lanaya 发表于 2023-11-29 19:16
    您好,可以请问一下楼主,暗紫色代表定义错误,请问怎么解决这个问题呢? ...

    因為 "思源黑體" & "Noto Sans CJK" v2.0 版以後,改變了 "一般 Regular" & "粗體 Bold" 的字型名稱形式
     所以 ListAssFonts 會把 v1.x 版以前的字型名稱,都當成「定義錯誤的字型」來看待,顯示成暗紫色


       ex: "思源黑體 Regular"、"Noto Sans CJK TC Bold" 這些名稱皆為 v1.x 以前的定義方式,視為定義錯誤
          "思源黑體"、"Noto Sans CJK TC" + "\b1" or "style 行的 Bold 欄設為 -1",v2.0 以後的定義方式,視為唯一正確定義






    如果不知道怎麼改的話,可以上傳字幕檔,我幫你改




    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2024-1-1 21:10:19 | 显示全部楼层
    KeepNaive233 发表于 2024-1-1 18:39
    站内贴 [季度番] 【我推的孩子】 / 【推しの子】 / 【OSHI NO KO】中,我从梦源字体Github源中下载了相关字 ...

    某些第三方的字型,ListAssFonts 有時候需要做一些特殊修改,才能支援這些字型


    不過我實際測試了夢源字型跟北宇治的我推字幕檔,在安裝了一大堆夢源黑體跟夢源宋體後
    好像沒發生無法識別字體的情形?(兩種字型皆安裝完整版)



    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2024-1-2 10:59:43 | 显示全部楼层
    本帖最后由 tonyhsie 于 2024-1-2 11:01 编辑
    KeepNaive233 发表于 2024-1-1 22:08
    奇怪了,我也不知道是出现了什么问题
    img.pterclub.com/images/2024/01/01/Screenshot-2024-01-01-220434. ...

    確認了一下,我跟你的測試結果不同,是因為 ListAssFonts 在處理系統字型跟外部字型,有一點點細微的差異


    在大部分的情況下,兩者的結果都是一致的
    但剛好在「夢源黑體 W12」、「夢源黑體 W22」、「夢源宋體 W7」、「夢源宋體 W20」這四個字型上會有截然不同的結果


    這四個字型跟其它不同字重的字型,主要差別在於「命名規則」

    以「夢源黑體 W22」與「夢源黑體 W23」為例,從下圖可以看得出來 (by dp4 Font Viewer)


    所謂的「夢源黑體 W22」,實際上的名稱並不是「夢源黑體 W22」,而是「夢源黑體」的粗體版本


    MPC/potplayer 的內建字幕 renderer 也不支援「夢源黑體 W22」這種名稱,就算你安裝了字型檔,播放時也無法正常顯示
    必須要改成「夢源黑體」,並且設定為粗體,才能正確顯示

    其餘三個字型,也是一樣道理


    字幕裡的修改原則:

    「夢源黑體 W12」->「夢源黑體」& 非粗體
    「夢源黑體 W22」->「夢源黑體」& 粗體
    「夢源宋體 W7」->「夢源宋體」& 非粗體
    「夢源宋體 W20」->「夢源宋體」& 粗體

    夢源黑體/宋體的其它字重,則不需要修改


    本帖子中包含更多资源

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

    x
    回复 支持 1 反对 0

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2024-2-4 06:42:11 | 显示全部楼层
    蓥荥 发表于 2024-2-4 02:48
    不知道是我的问题,还是bug
    安装了方正宋三_GBK 5.31版本,字幕使用FZSongIII-Z05的名字,软件显示未安装 ...

    我這裡無法復現,系統上安裝的方正宋三_GBK,跟你的附檔是一樣的檔案,僅檔名不同 (FZS3K.ttf)



    可能還是要由你那邊自行除錯了

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2024-3-21 04:21:21 | 显示全部楼层
    ssh_0224 发表于 2024-3-20 14:07
    我有个想新增的功能,能不能顺便导出每种字体所用的字符的集合(即使照着原样copy下来不去掉重复的字符也可 ...


    第一個新功能你可以研究一下 ttx (afdko 裡的一個工具)
    它可以導出字型裡的所有 characters,變成 .xml 形式

    https://github.com/adobe-type-tools/afdko

    https://github.com/fonttools/fonttools


    第二個問題,就像推文所說的,如果每次在 ListAssFonts 執行時,都要檢查所有外部字型檔案的 CRC
    這是非常浪費時間而且沒實際效益的行為
    (其實不用說 CRC,光是檢查幾萬個字型檔案的時間戳記,都一樣會浪費很多時間)

    我的建議是,你修改的新字型,不要再沿用舊字型的檔名,另外改個檔名就好了
    例如 xxx.ttf => xxx.20240321.ttf 之類的

    至於要刪除外部字型的緩存,只要刪掉這個目錄 %USERPROFILE%\AppData\Local\ListAssFonts\ext 就可以了
    但我覺得另存新檔是最快最方便的做法


    題外話,字幕匹配不上字型,改字幕就好了,為什麼要改字型?
    回复 支持 1 反对 0

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1336

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2868057

    卓越贡献

    tonyhsie  楼主| 发表于 2024-3-21 11:28:32 | 显示全部楼层
    本帖最后由 tonyhsie 于 2024-3-21 13:48 编辑
    ssh_0224 发表于 2024-3-21 10:11
    感觉第一个问题理解错了?我是指把ass文件里要显示的文字,按照ass调用的字体种类,每种字体实际被调用到的 ...


    的確,由 ListAssFonts 的角度,我不太能理解為什麼會提出跟子集化相關的需求

    現在已經有很多現成的工具,可以幫你從字幕跟字型裡萃取出字型的子集
    應該會比使用 LAF+pyftsubset 更方便吧


    如:
    https://github.com/tastysugar/AssFontSubset
    https://bbs.acgrip.com/forum.php?mod=viewthread&tid=9070

    github 上還有其它子集化工具,我自己是沒在用,也不知道它們的差異

    但我想
    如果有需要客制化的話,或許你可以拿它們現有的源碼來修改,會比較省事



    回复 支持 1 反对 0

    使用道具 举报

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

    本版积分规则

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