蓥荥
发表于 2024-2-4 02:48:41
不知道是我的问题,还是bug
安装了方正宋三_GBK 5.31版本,字幕使用FZSongIII-Z05的名字,软件显示未安装
tonyhsie
发表于 2024-2-4 06:42:11
蓥荥 发表于 2024-2-4 02:48
不知道是我的问题,还是bug
安装了方正宋三_GBK 5.31版本,字幕使用FZSongIII-Z05的名字,软件显示未安装 ...
我這裡無法復現,系統上安裝的方正宋三_GBK,跟你的附檔是一樣的檔案,僅檔名不同 (FZS3K.ttf)
可能還是要由你那邊自行除錯了
蓥荥
发表于 2024-2-4 15:13:55
本帖最后由 蓥荥 于 2024-2-4 15:35 编辑
tonyhsie 发表于 2024-2-4 06:42
我這裡無法復現,系統上安裝的方正宋三_GBK,跟你的附檔是一樣的檔案,僅檔名不同 (FZS3K.ttf)
发现了问题所在,部分方正宋三_GBK的字体名字是“FZSong III-Z05”,多了个空格,所以显示未安装,超级字体整合包 XZ中就同时存在这两种字体。
ssh_0224
发表于 2024-3-20 14:07:51
本帖最后由 ssh_0224 于 2024-3-20 14:33 编辑
我有个想新增的功能,能不能顺便导出每种字体所用的字符的集合(即使照着原样copy下来不去掉重复的字符也可以)?这样方便用pyftsubset取字体子集,字体文件压缩效率也更高一点。{:4_679:}
还发现一个影响不是很大的bug,用fontcreator改变字体文件内部的字体名后,之前匹配不上的字体文件理论上确实应该匹配上了,但是估计是因为软件使用字体缓存的缘故,同路径、同文件名的、经过字体软件编辑修改后的字体文件依旧匹配不上,我这边修改了字体文件的文件名(“xxx.ttf”)之后就匹配上了。如果可以的话,希望能完善一下缓存机制,加个字体文件CRC校验什么的,或者提供缓存清除的选项。
使用的是当前软件的最新版(v230613)
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 就可以了
但我覺得另存新檔是最快最方便的做法
題外話,字幕匹配不上字型,改字幕就好了,為什麼要改字型?
ssh_0224
发表于 2024-3-21 10:11:04
本帖最后由 ssh_0224 于 2024-3-21 10:50 编辑
tonyhsie 发表于 2024-3-21 04:21
第一個新功能你可以研究一下 ttx (afdko 裡的一個工具)
它可以導出字型裡的所有 characters,變成 .xml...感觉第一个问题理解错了?我是指把ass文件里要显示的文字,按照ass调用的字体种类,每种字体实际被调用到的(也就是需要显示出来的)字符集对应一个.txt输出,
比如“方正准圆.txt”里面的内容:”ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789、。?!:「」『』【】字集合……“这样的(每种字体大概几百个到上千个字符不等),
之后就能根据这些和字体种类一一对应的字符集,用pyftsubset,对每种字体的字型文件(”xxx.ttf“)精准地取对应的字体子集,这样内封mkv就能极大减少附加的字体文件的大小了。
我感觉大佬给的方案是把一个完整字型文件(”xxx.ttf“)里所有的字型(大概几十万个)都转换为字符输出,呃,对我似乎没什么用吧{:4_675:}
不过还是感谢大佬回复,第二个问题我想应该没问题了{:4_87:}
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 上還有其它子集化工具,我自己是沒在用,也不知道它們的差異
但我想
如果有需要客制化的話,或許你可以拿它們現有的源碼來修改,會比較省事
ssh_0224
发表于 2024-3-21 19:05:53
tonyhsie 发表于 2024-3-21 11:28
的確,由 ListAssFonts 的角度,我不太能理解為什麼會提出跟子集化相關的需求
現在已經有很多現成的工具 ...
OK,感谢~
AnoHana1949
发表于 2024-4-15 12:03:12
本帖最后由 AnoHana1949 于 2024-4-15 12:07 编辑
搞错地方了
danuu
发表于 2024-8-20 10:38:38
厉害,顶你,大胸弟