本帖最后由 wyzdwdz 于 2024-10-4 19:33 编辑
这四个子集化后有可能会改为同一个乱序名字,粗体和斜体的设置保持不变,只更改字体名。
至于为什么无法还原,我举一个例子,假设我有一个 ass 文件是这样的
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: One,Arial,40,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,0,1,0,0,100,100,0,0,1,2,1,2,30,30,10,1
Style: Two,Arial Italic,40,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,0,0,0,0,100,100,0,0,1,2,1,2,30,30,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:10.00,One,,0,0,0,,This is Style One, it is Arial Italic!!
Dialogue: 0,0:00:10.00,0:00:20.00,Two,,0,0,0,,This is Style Two, it is also Arial Italic!!
子集化并改名后是这样的
[Assfonts Rename Info]
Arial ---- GHTXBYBR
Arial Italic ---- GHTXBYBR
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: One,GHTXBYBR,40,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,0,1,0,0,100,100,0,0,1,2,1,2,30,30,10,1
Style: Two,GHTXBYBR,40,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,0,0,0,0,100,100,0,0,1,2,1,2,30,30,10,1
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:10.00,One,,0,0,0,,This is Style One, it is Arial Italic!!
Dialogue: 0,0:00:10.00,0:00:20.00,Two,,0,0,0,,This is Style Two, it is also Arial Italic!!
这个例子比较特殊,仔细看,原始 ass 文件 [V4+ Styles] 中样式 One 和 样式 Two 尽管它们的 fontname 不同,一个是 Arial,一个是 Arial Italic。但是由于样式 One 的 Italic 值为 1,所以它实际上使用的还是 Arial Italic 这个字体。因此,对于这个文件,我们只需要对 Arial Italic 这个字体做子集化,并修改它的名字。但是还原的时候就出了问题,如果你把所有的 GHTXBYBR 都替换成 Arial,那么显然样式 Two 会出错,因为它应该是 Arial Italic。
当然如果一定要还原原始信息,目前 [Assfonts Rename Info] 中提供的信息是不够的,需要详细记录字幕中每一处被修改的 fontname 的原始字体。
|