找回密码
 立即注册
查看: 29607|回复: 95

自动按需加载字体的轮子

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553 发表于 2020-7-26 21:27:07 | 显示全部楼层 |阅读模式
    本帖最后由 Apache553 于 2022-6-28 23:53 编辑

    因为论坛下的字幕并不总是很方便能得到所使用的字体的包,手里拿着超级字体整合包里面可能有对应的字体,然而又要自己去找,就十分的痛苦,就算是用yzwduck佬的FontLoaderSub也还要手动操作,最后自己自娱自乐造了个轮子出来

    2022/2/23: 整个软件重写了一遍(以前的代码太屎了),虽然还是没有界面(想不到必要性而且做不来
    2022/4/8: 不再尝试加载系统中已安装的字体了,可能会修复一些问题
    2022/6/28: 添加了预加载功能:能够保存最近加载的数个字体文件并在下一次启动时自动预加载,这样可以有效地减少libass系播放器的卡顿感; 添加了索引建立时的去重功能(文件级去重); 使用异步方式执行WMI查询; 优化字体索引构建性能; 杂项更改

    目前可以实现自动按需加载字体并局限于播放器进程的生命周期,不污染全局字体列表,日志会在事件查看器中。

    具体说明请移步:
    代码仓库: https://github.com/Apache553/SubtitleFontHelper

    v1.0.4


    注意:在升级1.0.2后需要重新构建索引和注册事件清单。


    欢迎大家使用并反馈!
    旧版本






    本帖子中包含更多资源

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

    x

    评分

    参与人数 12活跃度 +160340 收起 理由
    apsap + 200 很给力!
    铁皮厚厚 + 6400 神马都是浮云
    马可solo + 1600 很给力!
    御坂umr + 800 很给力!
    shadows + 240 建议更新下release
    Seekladoom + 83200
    kysdm + 32000 很给力!
    菜姬 + 32000 赞一个!
    霄月銀牙 + 2000 很给力!
    arition + 1600 很给力!
    Shadow + 200 赞一个!
    椎名千鹤 + 100 赞一个!

    查看全部评分

    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    623
    andor 发表于 2020-7-26 22:22:28 | 显示全部楼层
    为什么你叫Apache却用GPL.....
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    8

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    623
    andor 发表于 2020-7-26 22:41:32 | 显示全部楼层
    感受了一下,没有成功。我用FontloaderSub可以load的,但是用你这个

    [12]
    Query: 方正准圆_GBK
    Result: not found in index


    说起来deamon是不是可以弄成类似于service的东西,毕竟手动开也怪麻烦的。。

    PS:star你了
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    270

    回帖

    680

    VC币

    星辰大海

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

    积分
    1068248
    ssnake 发表于 2020-7-26 22:42:19 | 显示全部楼层
    andor 发表于 2020-7-26 22:22
    为什么你叫Apache却用GPL.....

    插嘴代答(

    因为从 VSFilter -> xy-VSFilter (xySubFilter) 就是 GPLv2 ,传染继承下来的。

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2020-7-27 00:45:30 | 显示全部楼层
    本帖最后由 Apache553 于 2020-7-27 00:47 编辑
    andor 发表于 2020-7-26 22:41
    感受了一下,没有成功。我用FontloaderSub可以load的,但是用你这个

    [12]

    ...我的问题 已经更新描述
    因为建立的索引我没有让他自动记录到配置文件中去,所以还得手动指定一下或者写进配置去...
    大概是这个原因

    service的话确实可以这么做 但是感觉又不太干净(涉及到全局的注册)
    不过已经有xysubfilter这样的 好像也没差了
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-6-5 17:57
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    49

    主题

    466

    回帖

    2581

    VC币

    星辰大海

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

    积分
    1787395

    崭露头角活跃达人新人登场渐入佳境

    菜姬 发表于 2020-7-27 07:22:22 | 显示全部楼层
    本帖最后由 菜姬 于 2020-7-27 07:51 编辑

    有点厉害
    还是用AddFontResource
    RemoveFontResource 这两个API吗
    不过现在好像用pinterf fork的版本 和 基于pinterf添加了VS接口的HolyWu fork版本比较多
    要不要移植到这两个fork上(压制的时候也能临时加载字体简直爽翻
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    90

    回帖

    0

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    108030
    yzwduck 发表于 2020-7-27 07:39:14 | 显示全部楼层
    如果 xy-VSFilter 更新很频繁的话,我觉得直接改本体的代码就不太合适,这需要单独维护每个常见 xy-VSFilter,会很麻烦;如果用 hook 的方法,就只需要维护一份 release,会方便很多。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2020-7-27 08:10:06 | 显示全部楼层
    yzwduck 发表于 2020-7-27 07:39
    如果 xy-VSFilter 更新很频繁的话,我觉得直接改本体的代码就不太合适,这需要单独维护每个常见 xy-VSFilte ...

    我最开始也想过用hook,但是我觉得xysubfilter本身并没有什么变种和更新,所以就找了本体的代码来改
    结果现在发现有一堆...

    用hook的问题在于会钩上整个进程的函数调用,感觉还是挺脏的,还有就是报毒的问题
    不过确实适用性更加宽广,甚至可以扩展到所有使用gdi来绘制的程序上

    可以再造个轮子了(
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-7-23 19:50
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    2

    主题

    35

    回帖

    0

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    258493
    Apache553  楼主| 发表于 2020-7-27 08:13:54 | 显示全部楼层
    菜姬 发表于 2020-7-27 07:22
    有点厉害
    还是用AddFontResource
    RemoveFontResource 这两个API吗

    是这两家伙,因为好像就这两个能用(

    移植的话,根据 yzwduck 佬的意见,现在准备整个用hook的版本出来,到时候应该就都能行了(
    回复

    使用道具 举报

    该用户从未签到

    15

    主题

    41

    回帖

    40

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    284315

    小有所成崭露头角BD!

    arition 发表于 2020-7-27 10:09:04 | 显示全部楼层
    好,满足了我多年的需求
    一年前尝试做auto loading结果看到xy vsfilter一坨上古代码直接放弃了
    期待hook版本
    回复

    使用道具 举报

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

    本版积分规则

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