Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为何微信中FontSubstitutes替换雅黑后字体会直接失去所有渲染呢? #976

Closed
rebron1900 opened this issue Jan 20, 2024 · 8 comments

Comments

@rebron1900
Copy link

如果热替换雅黑为其他字体,在微信中输入框位置的文字会变成没有任何渲染效果的状态。
如果不替换雅黑则可以正常渲染。

image

我的配置文件如下:

[Preview]
Font=Maple UI
Color=$990088
Text=The quick brown fox jumps over the lazy dog 天地玄黄宇宙洪荒日月盈仄辰宿列张
Size=12
Align=Center

[General]
Name=SFPro-PingFang

;【自动挂钩子进程】
;[0:Disable]  1:Enable
HookChildProcesses=1

;【字体微调】
;0:Normal 1:NoHinting 2:AutoHinting 3:Light+AutoHinting
HintingMode=1

;【抗锯齿方式】 ◆◆
;-1:Disable 0:Normal 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=2

;【常规体调整】
;-32:+32
NormalWeight=24

;【粗体字的调整】
;-16:+16
BoldWeight=-6

;【斜体字的倾斜角度微调】
;-16:+16
ItalicSlant=0

;【只有在FontLoader=0(在下面)时此项设置才有效。建议选0,选1会占用海量存储器,也没看出有什么好处。】
;0:Disable 1:Enable
UseMapping=0

;【Gamma模式开关】
;-1:关闭;0:使用设置的Gamma值(GammaValue);1:使用sRGB的Gamma值;2:不明
GammaMode=0

;【Gamma值】 ◆◆
;GammaMode=0的时候此项设置才有效
;Windows的ClearType的Gamma值是1.4
;OSX标准级Gamma值是1.8,电视级Gamma值是2.2
GammaValue=1.3

;【对比度】 ◆◆
;数字越大越锐利,数字越小越发虚
Contrast=1.47

;【字体轮廓】 ◆◆
;数字越大字体就越粗越黑
RenderWeight=1.3

;【文字边界设置】
;数字越大越强调背景(类似文字边界被侵蚀的感觉),强调背景会有中字体锐利的感觉。适当降低对比度,提高TextTuning,可以使文字周围的颜色看起来“淡一点”
;再加上RenderWeight,把这三个设置的微妙平衡调节好的话,能得到不输给Mac的效果
;取值范围:0~12

;当AntiAliasMode=1时,通过TextTuning分量来调节
TextTuning=2
;当AntiAliasMode=2时,通过TextTuningR/G/B三个分量来调节
TextTuningR=2
TextTuningG=2
TextTuningB=2

;【字体加粗模式】
;对NormalWeight和BoldWeight有效
;0:Weight值大时横向加粗,值小时双向加粗,主要是避免Weight值过大时,模式3中在小字号时加粗过度出现斩头的现象;
;1:总是横向加粗;
;2:总是双向加粗,也就是freetype本身的粗体渲染。
;注意:通过加大GammaValue、TextTuning的值,可以减少Weight值过大的造成的效果问题,即可以在BolderMode=2时也可以避免斩头
BolderMode=0

;【字体的加载方法】
;(注意是加载方法,不是渲染方法)
;0:用freetype加载字体
;1:用windows的绘图核心加载字体
;很多freetype的设置需要此项选0才能生效
FontLoader=0

;【字体链接】
;当FontLoader=0时
;0:什么都不做;
;1:使用注册表里的字体链接设置,通过FreeType的字符表进行查找
;2:使用注册表里的字体链接设置,使用Windows的转换函数直接查找
;当FontLoader=1时
;会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。
FontLink=1

;【字体替代】
;当FontLoader=0时
;0:什么都不做;
;1:安全替换方案(兼容性较好),根据以下FontSubstitutes的配置进行替换;
;2:完全替换方案(效果较全面,如替换后出现乱码,请尝试使用1),根据以下FontSubstitutes的配置进行替换;
;当FontLoader=1时
;会保持启用的状态,但是所有字体替代的处理会交由WIN32API完成
FontSubstitutes=1

;【让freetype处理的最大的字体尺寸,单位是像素,0的话就是全尺寸】
;交付 gdi++ 处理的最大尺寸(单位为像素)
;0-2147483647
MaxHeight=0

;【阴影设置】
;格式:水平偏移,垂直偏移,阴影深度(值越大,越浅)
Shadow=1,1,60,FFFFFF,35,000000

;【液晶显示器的优化配置】
;[0:None]  1:Default  2:Light  16:Legacy
LcdFilter=2

;【微调LcdFilterWeight】
;LcdFilter>0,且AntiAliasMode>-1时,该微调才生效
;这5个值分别代表文字笔划中从左到右的笔划浓度,最小为0,最大为255
;注释掉这个参数则恢复使用
LcdFilterWeight=8,77,86,77,8

;【字体缓存、内存的设置】
LoadOnDemand=1
CacheMaxFaces=256
CacheMaxSizes=33554432
CacheMaxBytes=67108864
EnableKerning=1

;【强制使用某一个字体】
;无视所有其他字体,全系统的字体都会被这里设置的字体代替
;ForceChangeFont=华文中宋

;【优先使用点阵】 ◆◆
;小于指定字号的文字将优先使用内嵌点阵
MaxBitmap=12

;【强制对小字体使用Hinting】 ◆◆
;对9号以下字体自动施加Hinting,使小字体更清晰
;此参数仅在AntiAliasMode=1、4、5时有效
;0:关闭,1:开启。默认开启
HintSmallFont=1

;【对硬件加速的渲染支持】
;对使用DirectWrite作为硬件加速技术的软件(如IE和firefox的硬件加速)提供渲染支持开关
;0:关闭,1:开启。默认开启
DirectWrite=1

[DirectWrite]
;渲染模式,0=默认,1=锯齿,2=经典,3=经典自然,4=自然,5=自然对称,6=字体原型
RenderingMode=5
;Gamma值,不写则根据上面的GammaValue自动计算
GammaValue=2
;对比度,默认为1
Contrast=1.234
;抗锯齿程度,默认1
ClearTypeLevel=1.0

[Experimental]
ColorFont=1

[Experimental@Firefox.exe]
InvertColor=1

[Experimental@edge.exe]
InvertColor=1

[Experimental@chrome.exe]
InvertColor=1

[Experimental@code.exe]
ClipBoxFix=1

[Experimental@devenv.exe]
ClipBoxFix=1

[Experimental@studio64.exe]
ClipBoxFix=1

[FontSubstitutes@devenv.exe]
Tahoma=Maple UI
Calibri=Maple UI

[FontSubstitutes@code.exe]
Tahoma=Maple UI
Calibri=Maple UI

[ExcludeModule]
;【不渲染的程序,但仍会加载DLL】


[Exclude]
;【除外的字体】,会与MacType.ini中的同名配置共同生效

[FontSubstitutes]
;【字体替代】
;系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体
Arial=Maple UI
Arial Black=Maple UI
Arial Narrow=Maple UI
Arial Unicode MS=Maple UI
acumin-pro=Maple UI
Calibri=Maple UI
Calibri Light=Maple UI
Courier=Maple UI
Courier New=Maple UI
Helv=Maple UI
Helvetica=Maple UI
Helvetica Neue=Maple UI
Helvetica Neue LT Std=Maple UI
Heiti SC=Maple UI
Heiti TC=Maple UI
Hiragino Sans GB=Maple UI
MS Sans Serif=Maple UI
MS Serif=Maple UI
MS Shell Dlg=Maple UI
MS Shell Dlg 2=Maple UI
sans=Maple UI
Sans Serif=Maple UI
sans serif=Maple UI
Sans-Serif=Maple UI
sans-serif=Maple UI
Segoe UI=Maple UI
segoe UI=Maple UI
segoe ui=Maple UI
Segoe=Maple UI
segoe=Maple UI
SEGOEUISL=Maple UI
serif=Maple UI
system-ui=Maple UI
System-UI=Maple UI

SimSun=Maple UI
NSimSun=Maple UI
SimSun-ExtB=Maple UI
FangSong=Maple UI
KaiTi=Maple UI

;Microsoft Yahei=Maple UI
Microsoft Yahei UI=Maple UI
DengXian=Maple UI

XXX=Maple UI
XXX Bold=Maple UI Bold
XXX Mono=Maple Code Vivid
XXX Mono Bold=Maple Code Vivid
XXX SimSun=Maple UI
XXX NSimSun=Maple UI

Lucida Grande=Maple UI
Lucida Sans Unicode=Maple UI
Fixedsys=Maple UI

Segoe UI Variable=Maple UI
Segoe UI Variable Small Light=Maple UI
Segoe UI Variable Small Semilight=Maple UI
Segoe UI Variable Small=Maple UI
Segoe UI Variable Small Semibold=Maple UI
Segoe UI Variable Small Bold=Maple UI Bold
Segoe UI Variable Text Light=Maple UI
Segoe UI Variable Text Semilight=Maple UI
Segoe UI Variable Text=Maple UI
Segoe UI Variable Text Semibold=Maple UI
Segoe UI Variable Text Bold=Maple UI Bold
Segoe UI Variable Display Light=Maple UI
Segoe UI Variable Display Semilight=Maple UI
Segoe UI Variable Display=Maple UI
Segoe UI Variable Display Semibold=Maple UI
Segoe UI Variable Display Bold=Maple UI Bold

[Individual]
;格式=Hinting, AAMode, NormalWeight, BoldWeight, ItalicSlant, Kerning
Times New Roman=,,10,0,,
Segoe UI=,,10,0,,
Tahoma=,,10,0,,

[UnloadDll]


[ExcludeSub]
chrome.exe

@rebron1900 rebron1900 changed the title 为何微信中FontSubstitutes替换雅黑后字体会直接市区所有渲染呢? 为何微信中FontSubstitutes替换雅黑后字体会直接失去所有渲染呢? Jan 20, 2024
@digiant
Copy link

digiant commented Jan 20, 2024

微信PC新版本用的skia渲染了,很垃圾,不支持mactype渲染了,可以用老版本。

@rebron1900
Copy link
Author

微信PC新版本用的skia渲染了,很垃圾,不支持mactype渲染了,可以用老版本。

我用的就是支持GDI的老版本,不替换雅黑的话是能渲染上的

@wpv-chan
Copy link

微信PC新版本用的skia渲染了,很垃圾,不支持mactype渲染了,可以用老版本。

请教一下是从哪一个版本开始更换为skia渲染的呢

@rebron1900
Copy link
Author

微信PC新版本用的skia渲染了,很垃圾,不支持mactype渲染了,可以用老版本。

请教一下是从哪一个版本开始更换为skia渲染的呢

我目前用的3.8.1.26

@rickblue
Copy link

image

@rebron1900
Copy link
Author

image

可以分享一下配置文件吗。

@rickblue
Copy link

我配置文件搞得乱起八糟就不贴了,主要配置跟你差不多:#971 (comment)
另外建议关闭secure boot试试。

@rebron1900
Copy link
Author

rebron1900 commented Apr 21, 2024

我配置文件搞得乱起八糟就不贴了,主要配置跟你差不多:#971 (comment) 另外建议关闭secure boot试试。

谢谢,解决了大部分问题。

另外,不要大量替换字体,否则微信字体渲染会出问题。

我目前的配置:

; ----------------------------------------------------------------------
; XMac
; (Only for MacType, NOT SUPPORT THE OLD VERSION OF GDI++/HE)
;
; maxchow@qq.com
; QQ Group: 18988755
; ----------------------------------------------------------------------

[Preview]
Font=XHei iOS
Color=$990088
Text=卍 HotShift →XHei.iOS
Size=11
Align=Center

[General]
Name=iOS - Maple
Icon=XMac\XMac.ico,0

;【自动挂钩子进程】
;[0:Disable]  1:Enable
HookChildProcesses=1
hintsmallfont=0
;【字体微调】
;0:Normal 1:NoHinting 2:AutoHinting 3:Light+AutoHinting
HintingMode=1

;【抗锯齿方式】
;-1:Disable 0:Normal 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=4

;【常规体调整】
;-32:+32
NormalWeight=14

;【粗体字的调整】
;-16:+16
BoldWeight=2
directwrite=1
;【斜体字的倾斜角度微调】
;-16:+16
ItalicSlant=0

;【只有在FontLoader=0(在下面)时此项设置才有效。建议选0,选1会占用大量内存,也没看出有什么好处。】
;0:Disable 1:Enable
UseMapping=0

;【Gamma模式开关】
;-1:关闭;0:使用设置的Gamma值(GammaValue);1:使用sRGB的Gamma值;2:不明
GammaMode=0

;【Gamma值】
;GammaMode=0的时候此项设置才有效
;Windows的ClearType的Gamma值是1.4
;OSX标准级Gamma值是1.8,电视级Gamma值是2.2
GammaValue=1.4

;【对比度】
;数字越大越锐利,数字越小越发虚
Contrast=1.2

;【字体轮廓】
;数字越大字体就越粗越黑
RenderWeight=1.0

;【文字边界设置】
;数字越大越强调背景(类似文字边界被侵蚀的感觉),强调背景会有中字体锐利的感觉。适当降低对比度,提高TextTuning,可以使文字周围的颜色看起来“淡一点”
;再加上RenderWeight,把这三个设置的微妙平衡调节好的话,能得到不输给Mac的效果
;取值范围:0~12

;当AntiAliasMode=1时,通过TextTuning分量来调节
TextTuning=0
;当AntiAliasMode=2时,通过TextTuningR/G/B三个分量来调节
TextTuningR=0
TextTuningG=0
TextTuningB=0

;【字体加粗模式】
;对NormalWeight和BoldWeight有效
;0:Weight值大时横向加粗,值小时双向加粗,主要是避免Weight值过大时,模式3中在小字号时加粗过度出现斩头的现象;
;1:总是横向加粗;
;2:总是双向加粗,也就是freetype本身的粗体渲染。
;注意:通过加大GammaValue、TextTuning的值,可以减少Weight值过大的造成的效果问题,即可以在BolderMode=2时也可以避免斩头
BolderMode=0

;【字体的载入方法】
;(注意是载入方法,不是渲染方法)
;0:用freetype载入字体
;1:用windows的绘图核心载入字体
;很多freetype的设置需要此项选0才能生效
FontLoader=0

;【字体链接】
;当FontLoader=0时
;0:什么都不做;
;1:使用注册表里的字体链接设置,通过FreeType的字符表进行查找
;2:使用注册表里的字体链接设置,使用Windows的转换函数直接查找
;当FontLoader=1时
;会保持启用的状态,但是所有字体链接的处理会交由WIN32API完成。
FontLink=2
;【字体替代】
;当FontLoader=0时
;0:什么都不做;
;1:安全替换方案(兼容性较好),根据以下FontSubstitutes的配置进行替换;
;2:完全替换方案(效果较全面,如替换后出现乱码,请尝试使用1),根据以下FontSubstitutes的配置进行替换;
;当FontLoader=1时
;会保持启用的状态,但是所有字体替代的处理会交由WIN32API完成
FontSubstitutes=1

;【让freetype处理的最大的字体尺寸,单位是像素,0的话就是全尺寸】
;交付 gdi++ 处理的最大尺寸(单位为像素)
;0-2147483647
MaxHeight=0

;【阴影设置】
;格式:水平偏移,垂直偏移,深色文字的阴影透明度(0-100),深色文字的阴影颜色,浅色文字的阴影透明度(0-100),浅色文字的阴影颜色
;阴影透明度值越低,则越透明
;颜色值格式:BBGGRR
;Shadow=1,1,10

;【液晶显示器的优化配置】
;[0:None]  1:Default  2:Light  16:Legacy
LcdFilter=2

;【微调LcdFilterWeight】
;LcdFilter>0,且AntiAliasMode>-1时,该微调才生效
;这5个值分别代表文字笔划中从左到右的笔划浓度,最小为0,最大为255
;注释掉这个参数则恢复使用
;当LcdFilter=1,默认值为“16,64,112,64,16”
;当LcdFilter=2,默认值为“0,85,86,85,0”
;LcdFilterWeight=0,80,128,80,0

;【字体缓存、内存的设置】
LoadOnDemand=1
CacheMaxFaces=256
CacheMaxSizes=33554432
CacheMaxBytes=67108864
EnableKerning=0

;【强制使用某一个字体】
;无视所有其他字体,全系统的字体都会被这里设置的字体代替
;ForceChangeFont=华文中宋

;【优先使用点阵】
;小于指定字号的文字将优先使用内嵌点阵
MaxBitmap=0

;【对9号以下字体自动施加hinting】
;对内置hinting字体使用内置hinting,不内置的使用auto hinting
;0:禁用,1:启用。默认为1

[Individual]
;【单独设置的字体】
;格式=Hinting, AAMode, NormalWeight, BoldWeight, ItalicSlant, Kerning
XHei=,,12,4,,,
XHei iOS=,,12,4,,,
XHei OSX=,,12,4,,,
XHei Mono=,,12,4,,,
XHei Mono.Xihei=,,12,4,,,
XHei SimSun=,,12,4,,,
XHei NSimSun=,,12,4,,,
XHei SimSun.Xihei=,,12,4,,,
XHei NSimSun.Xihei=,,12,4,,,

XSong=,,24,0,,
XSong SimSun=,,24,0,,
XSong NSimSun=,,24,0,,
XSong Sharp=,,24,0,,
XSong Sharp.SimSun=,,24,0,,
XSong Sharp.NSimSun=,,24,0,,
XSong Harmony=,,24,0,,
XSong Harmony.SimSun=,,24,0,,
XSong Harmony.NSimSun=,,24,0,,
XSong Classical=,,24,0,,
XSong Classical.SimSun=,,24,0,,
XSong Classical.NSimSun=,,24,0,,
XSong Tradition=,,24,0,,
XSong Tradition.SimSun=,,24,0,,
XSong Tradition.NSimSun=,,24,0,,

宋体=,,20,0,,
新宋体=,,20,0,,
SimSun-ExtB=,,20,0,,
仿宋_GB2312=,,20,0,,
仿宋=,,20,0,,
华文仿宋=,,20,0,,
华文宋体=,,20,0,,
华文中宋=,,20,0,,
Batang=,,24,0,,
MingLiU=,,24,0,,
MingLiU-ExtB=,,24,0,,
PMingLiU=,,24,0,,
PMingLiU-ExtB=,,24,0,,
PMingLiU_HKSCS=,,24,0,,
PMingLiU_HKSCS-ExtB=,,24,0,,
MS Mincho=,,24,0,,
MS PMincho=,,24,0,,

[Experimental@browser]
clipboxfix=1

[Exclude]
;【除外的字体】,会与MacType.ini中的同名配置共同生效

[ExcludeModule]
;【不渲染的程序,但仍会加载DLL】,会与MacType.ini中的同名配置共同生效


;【不渲染的程序,同时完全不加载DLL】,会与MacType.ini中的同名配置共同生效

[FontSubstitutes]
;【字体替代】
;系统在调用“=”前面的字体时会忽视“=”前面的字体,而去直接调用“=”后面的字体
SimSun=Maple UI
NSimSun=Maple UI


Segoe UI Variable=Maple UI
Segoe UI Variable Small Light=Maple UI
Segoe UI Variable Small Semilight=Maple UI
Segoe UI Variable Small=Maple UI
Segoe UI Variable Small Semibold=Maple UI
Segoe UI Variable Small Bold=Maple UI Bold
Segoe UI Variable Text Light=Maple UI
Segoe UI Variable Text Semilight=Maple UI
Segoe UI Variable Text=Maple UI
Segoe UI Variable Text Semibold=Maple UI
Segoe UI Variable Text Bold=Maple UI Bold
Segoe UI Variable Display Light=Maple UI
Segoe UI Variable Display Semilight=Maple UI
Segoe UI Variable Display=Maple UI
Segoe UI Variable Display Semibold=Maple UI
Segoe UI Variable Display Bold=Maple UI Bold

[general@browser]
FontSubstitutes=1

[general@iexplore.exe]
Alternative=browser

[general@chrome.exe]
Alternative=browser

[general@firefox.exe]
Alternative=browser

[general@thunder.exe]
Alternative=browser

;===== 标识为Office的通用配置组 =====
[General@Office]
shadow=0,0,0,0,0,0
FontSubstitutes=1

;===== 标识为NoShadow的通用配置组 =====
[General@NoShadow]
shadow=0,0,0,0,0,0

;>>>>> 对特定EXE程序的配置,使用指定标识的配置组配置覆盖默认的同名配置 >>>>>
[General@EXCEL.EXE]
Alternative=Office
[General@POWERPNT.EXE]
Alternative=Office
[General@WINWORD.EXE]
Alternative=Office
[General@et.exe]
Alternative=Office
[General@wps.exe]
Alternative=Office
[General@wpp.exe]
Alternative=Office

[General@tdxw.exe]
Alternative=NoShadow

[IncludeModule]
SRSSSC.exe

[ExcludeSub]
EXCEL.EXE
POWERPNT.EXE
et.exe
wps.exe
wpp.exe
webkit2webprocess.exe
WINWORD.EXE

[UnloadDll]
age2_x1_1.0c_1280x800.exe
avgnt.exe
AxureRP.exe
bleachbit.exe
dwm.exe
FontCreator.cn.exe
FontCreator.exe
Fontforge_EN.exe
Fontforge_SC.exe
Fontforge_TC.exe
fontview.exe
gnucash-bin.exe
KuGou.exe
MainType.exe
NexusFont.exe
notecase.exe
notecaselauncher.exe
OllyICE.exe
PlantsVsZombies.exe
ProcessGovernor.exe
ProcessLasso.exe
wmiprvse.exe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants