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

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

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

    [LV.2]偶尔看看I

    69

    主题

    1296

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2830278

    卓越贡献

    tonyhsie  楼主| 发表于 2020-5-8 21:23:45 | 显示全部楼层
    v200508-2

    新功能 or bug 修正

    1. 修正 "-shortcutfonts" 參數在按下 F12 或是 menu 鍵後,會導致無限重啟 ListAssFonts 的問題





    感謝 neil78 的協助!
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1296

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2830278

    卓越贡献

    tonyhsie  楼主| 发表于 2020-5-9 06:48:59 | 显示全部楼层

    v200509

    bug 修正

    1. 修正 Win7 下,列出系統上已安裝的字型列表時,文字會顯示成紅色的問題

    Win10 沒有這個問題,可選擇性更新


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-5-16 07:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    31

    回帖

    312

    VC币

    高级会员

    Rank: 4

    积分
    30595
    wyj-aln 发表于 2020-5-16 00:52:25 | 显示全部楼层

    一直在用楼主tonyhsie的小工具,非常方便实用,十分感谢!现在用的是v200509版本,多次使用后对于该工具及其新增的功能反馈下实际遇到的问题/bug和一些小建议:
    1、关于检测缺字功能,部分字幕(见附件)会产生空的检测结果,显示“方正准圆_GBK <FZZhunYuan-M02>:「​」:#22”类似这样的结果,「​」中间是空的,不明原因,字幕档本身未发现什么问题;
    2、对于缺字的字型,这里有2个小问题:①有些字幕组会用\fe命令改变字符编码使得有些本身不能显示的字可以正常显示,不知道楼主考虑没;②很多字幕组会用各种颜文字吐槽,用到的很多符号基本不会刻意去改字体,直接就打上去了(包括常见的爱心、五角星及音符符号),像这种特殊符号虽然不被包含在字型中,但字符插件可以正常显示,对于这种情况个人觉得可以优化下,无需显示在NeedVerify.txt中,出这个新功能首次使用时,NeedVerify文档里面全是爱心和五角星符号,有点影响查看真正缺失的字符;
    3、关于“\rnd”,好像是用来边界变形的,挂vsfiltermod看时并无问题,不知道为什么楼主认为含有\rnd是错误行,以致于检测的时候弹出了几十个error文档,一看全是含\rnd特效的字幕(以路人女主第二季动漫国的字幕为例,见附件);
    4、建议出个“对于未安装或有问题的字体,查看其所在的字幕或者路径”功能,因为有时并不想新安装字体,而去想直接把字幕Style改成已有字体,但是文件很多,不方便找;
    5、仍然有些字体,明明注册表显示安装了,但就是显示红色(如图,经典中圆简)。

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1296

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2830278

    卓越贡献

    tonyhsie  楼主| 发表于 2020-5-16 03:25:26 | 显示全部楼层
    wyj-aln 发表于 2020-5-16 00:52
    一直在用楼主tonyhsie的小工具,非常方便实用,十分感谢!现在用的是v200509版本,多次使用后对于该工具 ...

    感謝你的反饋,我說明一下:
    以下以 LAF 來代稱 ListAssFonts
    1、关于检测缺字功能,部分字幕(见附件)会产生空的检测结果,显示“方正准圆_GBK <FZZhunYuan-M02>:「​」:#22”类似这样的结果,「​」中间是空的,不明原因,字幕档本身未发现什么问题;
    中間其實不是空的,只是因為這些字元本來就無法顯示而已

    根據你提供的範例字幕來看,# 22 行的「時間」兩字之間,的確有這些字元在,所以 LAF 才會回報

    這些字元會不會對顯示造成影響,LAF 是無法得知的
    但既然它們實際上是不需要的字元,那麼 LAF 找出它們之後,使用者把它們刪除掉,可能也是一種選擇

    2、对于缺字的字型,这里有2个小问题:①有些字幕组会用\fe命令改变字符编码使得有些本身不能显示的字可以正常显示,不知道楼主考虑没;②很多字幕组会用各种颜文字吐槽,用到的很多符号基本不会刻意去改字体,直接就打上去了(包括常见的爱心、五角星及音符符号),像这种特殊符号虽然不被包含在字型中,但字符插件可以正常显示,对于这种情况个人觉得可以优化下,无需显示在NeedVerify.txt中,出这个新功能首次使用时,NeedVerify文档里面全是爱心和五角星符号,有点影响查看真正缺失的字符;
    1. 我沒遇過用 \fe 來讓字元正常顯示的字幕,是否有範例可以提供給我參考一下?

    2. 關於符號字元,你的建議其實我有考慮過,因為我自己手邊的字幕也有不少是這種情況

     但如果要排除一堆字元的話,或許程式的效率會變慢(因為字元一多,每個字元如果都要先確認一下,是不是一大堆符號的其中之一,時間會拉長)
     後來暫時決定,先一併列出所有字元,交給使用者自行判斷

     但這一點我會再思考一下,看有沒有比較好的作法

    3、关于“\rnd”,好像是用来边界变形的,挂vsfiltermod看时并无问题,不知道为什么楼主认为含有\rnd是错误行,以致于检测的时候弹出了几十个error文档,一看全是含\rnd特效的字幕(以路人女主第二季动漫国的字幕为例,见附件);
    \rnd 這指令只有 vsfiltermod 支援,其它字幕 filter 如 MPC 的內建字幕 renderer,vsfilter 系的 xySubFilter,等等皆不支援

    它並不是標準的 ass 指令,而是 vsfiltermod 自行定義的語法,照理說除了壓制用以外的字幕,都不應該放 \rnd 指令才是

    \rnd 對其它的字幕 filter 來說,可能會被當成 \r,這對觀影體驗會有蠻大的影響,所以 LAF 才會把這些字幕當成 error 來看待

    4、建议出个“对于未安装或有问题的字体,查看其所在的字幕或者路径”功能,因为有时并不想新安装字体,而去想直接把字幕Style改成已有字体,但是文件很多,不方便找;
    這點我再研究一下,看看是不是把它們加進 NeefVerify.txt 或 error.txt 裡會比較好

    5、仍然有些字体,明明注册表显示安装了,但就是显示红色(如图,经典中圆简)。
    我需要該字型檔案才能判斷問題所在,可以的話請發個連結給我吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-5-16 07:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    31

    回帖

    312

    VC币

    高级会员

    Rank: 4

    积分
    30595
    wyj-aln 发表于 2020-5-16 10:15:42 | 显示全部楼层
    tonyhsie 发表于 2020-5-16 03:25
    感謝你的反饋,我說明一下:
    以下以 LAF 來代稱 ListAssFonts
    中間其實不是空的,只是因為這些字元本來 ...

    感谢楼主的回答!附件里针对性地给了显示不正确的两款字体:经典中圆简和迷你简细行楷以及测试用的ass文件,包括提到的\fe命令,一些符号虽然该字体集可能没有但在改变编码后可以正常显示(如图)。

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1296

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2830278

    卓越贡献

    tonyhsie  楼主| 发表于 2020-5-16 10:41:16 | 显示全部楼层
    本帖最后由 tonyhsie 于 2020-5-16 11:05 编辑
    wyj-aln 发表于 2020-5-16 10:15
    感谢楼主的回答!附件里针对性地给了显示不正确的两款字体:经典中圆简和迷你简细行楷以及测试用的ass文 ...

    這兩個字體在程式的處理上的確有些問題,底層的 .Net Framework 沒辦法像處理其它字型時一樣,取得這兩個字型的相關資訊
    我想問一下,你用 v200427 或更早以前的版本的時候,這兩個字體可以正常辨視嗎?


    符號及 \fe 的問題

    在我的環境下,這三行字幕,不管在 Aegisub 或 MPC-HC 下,都能正常顯示出符號(但應該都不是方正小標宋本身自帶的)






    據我理解,你的意思應該是,這個字體在別的編碼之下
    可以支援特殊符號

    但在我看來,這些顯示結果,就算有顯示出符號來
    那個符號的圖形,也不是方正小標宋字體內含的,

    而是因為方正小標宋缺了這個符號,系統用別的字體來替代的結果,如同其它的缺字一樣

    指定 \fe 看起來只是讓系統選擇不同的字型來替代而已,無論指定了什麼 \fe,都跟小標宋無關,只跟系統上該編碼預設替代的字型有關?



    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-20 09:34
  • 签到天数: 420 天

    [LV.9]以坛为家II

    1

    主题

    8

    回帖

    40

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48347
    iwn3hnk 发表于 2020-5-16 17:07:39 | 显示全部楼层
    本帖最后由 iwn3hnk 于 2020-5-16 17:11 编辑

    感谢LZ的小工具,只是因为我自己瞎弄的关系,结果出现了错误。
    我在查找字体时,发现不知道为什么有些字体在以下两个目录都有:
    目录1:C:\Windows\Fonts
    目录2:%USERPROFILE%\AppData\Local\Microsoft\Windows\Fonts
    并且直接安装字体时大多数会安装到目录2中。同时在字体已存在选择替换时,还会重复安装,并在名字后面顺序加上数字。
    于是开始瞎弄的我直接想把目录2移动到目录1。结果没有成功不说,还使得原本可以正常使用的ListAssFonts不管看什么字幕文件都会出现图片上的错误。
    有关调用实时(JIT)调试而不是此对话框的详细信息,
    请参见此消息的结尾。

    ************** 异常文本 **************
    System.Collections.Generic.KeyNotFoundException: 给定关键字不在字典中。
       在 System.ThrowHelper.ThrowKeyNotFoundException()
       在 System.Collections.Generic.Dictionary`2.get_Item(TKey key)
       在 ListAssFonts.Form1.j.d()
    --- 引发异常的上一位置中堆栈跟踪的末尾 ---
       在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       在 ListAssFonts.Form1.p.e()
    --- 引发异常的上一位置中堆栈跟踪的末尾 ---
       在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
       在 ListAssFonts.Form1.c.e()
    --- 引发异常的上一位置中堆栈跟踪的末尾 ---
       在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()


    ************** 已加载的程序集 **************
    mscorlib
        程序集版本:4.0.0.0
        Win32 版本:4.8.4180.0 built by: NET48REL1LAST_B
        基本代码:file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
    ----------------------------------------
    ListAssFonts
        程序集版本:1.0.0.0
        Win32 版本:1.0.0.0
        基本代码:file:///C:/%E7%BB%BF%E8%89%B2%E7%89%88/%E6%A3%80%E6%B5%8B/ACG/%E5%AD%97%E4%BD%93%E6%A3%80%E6%9F%A5/ListAssFonts%20v200509.exe
    ----------------------------------------
    System.Windows.Forms
        程序集版本:4.0.0.0
        Win32 版本:4.8.4150.0 built by: NET48REL1LAST_C
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System
        程序集版本:4.0.0.0
        Win32 版本:4.8.4001.0 built by: NET48REL1LAST_C
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
        程序集版本:4.0.0.0
        Win32 版本:4.8.3752.0 built by: NET48REL1
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Configuration
        程序集版本:4.0.0.0
        Win32 版本:4.8.3752.0 built by: NET48REL1
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Core
        程序集版本:4.0.0.0
        Win32 版本:4.8.4180.0 built by: NET48REL1LAST_B
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Xml
        程序集版本:4.0.0.0
        Win32 版本:4.8.3752.0 built by: NET48REL1
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    mscorlib.resources
        程序集版本:4.0.0.0
        Win32 版本:4.8.3752.0 built by: NET48REL1
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    System.Windows.Forms.resources
        程序集版本:4.0.0.0
        Win32 版本:4.8.3752.0 built by: NET48REL1
        基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------

    ************** JIT 调试 **************
    要启用实时(JIT)调试,
    该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
    jitDebugging 值。
    编译应用程序时还必须启用
    调试。

    例如:

    <configuration>
        <system.windows.forms jitDebugging="true" />
    </configuration>

    启用 JIT 调试后,任何未经处理的异常
    都将被发送到在此计算机上注册的 JIT 调试程序,
    而不是由此对话框处理。



    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

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

    [LV.2]偶尔看看I

    69

    主题

    1296

    回帖

    1万

    VC币

    星辰大海

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

    积分
    2830278

    卓越贡献

    tonyhsie  楼主| 发表于 2020-5-16 18:30:30 | 显示全部楼层
    iwn3hnk 发表于 2020-5-16 17:07
    感谢LZ的小工具,只是因为我自己瞎弄的关系,结果出现了错误。
    我在查找字体时,发现不知道为什么有些字体 ...

    把 %USERPROFILE%\AppData\Local\ListAssFonts 砍掉,再重新執行 ListAssFonts 就可以了
    并且直接安装字体时大多数会安装到目录2中。同时在字体已存在选择替换时,还会重复安装,并在名字后面顺序加上数字。
    1. 安裝字體時,請選「為所有使用者安裝」而不是「安裝」,字體就會安裝到 \Windows\Fonts 下而不是 %USERPROFILE%\AppData\Local\Microsoft\Windows\Fonts 下

    2. 提示字體已存在時,最好是先取消安裝,然後先移除舊字體,再安裝字體,不然就會發生重複安裝的問題

    于是开始瞎弄的我直接想把目录2移动到目录1
    這樣搞當然不行,乖乖反安裝,再重新安裝,比較保險

    如果覺得「設定->個人化->字型」那個介面,反安裝字體的效率太爛的話
    可以使用「Windows系統->控制台->字型」這個傳統介面來反安裝
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-5-16 07:28
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    31

    回帖

    312

    VC币

    高级会员

    Rank: 4

    积分
    30595
    wyj-aln 发表于 2020-5-16 18:55:20 | 显示全部楼层
    tonyhsie 发表于 2020-5-16 10:41
    這兩個字體在程式的處理上的確有些問題,底層的 .Net Framework 沒辦法像處理其它字型時一樣,取得這兩個 ...

    感谢楼主的即时回答:
    1、我的不加\fe的符号不能正常显示应该和系统环境不同导致编码预设字型不同有关,但是无论是否能显示这些符号都不是所定义字体自带字符,这点懂了,无需纠结了;
    2、关于经典中圆简和迷你简细行楷这两款字体不同版本的LAF运行情况:
    ①v200321:识别为已安装,黑色,无问题;
    ②v200427:识别为已安装,黑色,但是NeedVerify里会认为所有该字型的字都为缺字;
    ③v200509:识别为未安装,红色,NeedVerify里不会认为正常显示的字为缺字。
    应该和.NET Framework版本有关?
    3、PS:第一次作快取时,面板里有句话“Don't worry, it's just an One-time job.”这里应该为a One-time job,,定冠词用a还是an应该看后面的音标而不是字母的元辅性。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-2-20 09:34
  • 签到天数: 420 天

    [LV.9]以坛为家II

    1

    主题

    8

    回帖

    40

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    48347
    iwn3hnk 发表于 2020-5-16 19:22:22 | 显示全部楼层
    tonyhsie 发表于 2020-5-16 18:30
    把 %USERPROFILE%\AppData\Local\ListAssFonts 砍掉,再重新執行 ListAssFonts 就可以了
    1. 安裝字體時, ...

    感谢LZ的回复,问题解决了。字体的问题也解决了~~~
    终于不是两个Fonts了,顺眼~~
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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