冒险解谜游戏中文网 ChinaAVG

标题: 【汉化任务简报】#26 台湾繁体字库chinese.fnt的转换程序 [打印本页]

作者: shane007    时间: 2009-5-18 20:18
标题: 【汉化任务简报】#26 台湾繁体字库chinese.fnt的转换程序
在The Dig中文版中有一个chinese.fnt字库,是Big5编码的,我们为了使用这个字库, # t' H5 g" s' Z3 V
必须把字挥蒰b码转换为big5码,非常不方便。
& [' i# x  o8 G6 Y# [所以我们想制作一个转换工具,把原来的Big5编码顺序chinese.fnt 转换为gb编码顺序。
6 C) ?, D7 E( e5 |" p; w这个工具是要被scummvm模拟器使用的。
# L3 F" h6 v1 H! t, R" u- a4 ?
  ]. I) v. P% F9 F% u  f9 O: l* ?8 Y具体要求如下 ( g0 t+ P, [3 u9 E$ q9 q
; M9 f( ]/ y& u8 g" `2 x
--------------------------------------------------------------------------------------- ! j- \- F, G; ]& l
原字库                                      chinese.fnt , ^" T) Z. V- Q! u3 q! \3 @
字幕文件编码方式                            Big5编码 # s# d' |9 Q1 R# H8 Z
字库索引算法                                Big5编码              
5 u  v" y) `+ m* k(即scummvm内部根据2个字节去找字模的算法)         
: @# _  A- h6 M% X字库内字模排列顺序                          Big5编码顺序
: _0 t) ?1 \! B$ U' {----------------------------------------------------------------------------------------- : Z3 q% t3 t2 x$ T1 K: E
转换后字库                                  chinese_gb.fnt
7 w& z* Y) G; D5 [5 {  z字幕文件编码方式                            gb2312编码 4 Z4 k$ @& C4 e& p& {. f
字库索引算法                                Big5编码(注意,这个没变喔)            
* L) ]7 c# g' W; d(即scummvm内部根据2个字节去找字模的算法)         
6 a$ v5 ]& k  V  f, h8 v) i字库内字模排列顺序                          Big5编码对gb2312编码的映射顺序
5 {& s4 _9 w1 w$ v----------------------------------------------------------------------------------------- # X8 E+ _) n- v% Q7 J, W) t
% ], h( q8 _- {# u) E; w3 J0 M
举例来说,我们字幕文件里是一个gb码的 我 字,用big5编码索引后,在big5字库中找到的就是另外一个字,比如说是 你 字。
- |2 U! t( D1 r9 y; `0 k5 x& p" a现在就是希望用big5编码索引后,在新的字库中找到的字仍然是 我 字。
. j9 a( v* g) Z6 u/ y+ ~) H+ S8 c2 H, w) j
字库是16X15的,每240个点一个字,计30个字节。
# H! |6 o+ j3 }+ x6 y5 z- b$ ?1 i
6 p4 V& C  R  {" l8 G/ a参考代码
  J0 Z- ~% e( j* v# \7 ihttps://www.chinaavg.com/read.php?tid=170380 G1 M4 J) O: T( t: [
字库浏览程序及字库chinese.fnt
" f7 L0 ?1 v8 t( A8 Shttps://www.chinaavg.com/read.php?tid=17017
作者: lennel    时间: 2009-5-19 18:04
太高深了- u5 R4 V* K0 L' M
不會用
作者: shane007    时间: 2009-5-20 00:10
已经解决,任务取消
作者: heiheiha    时间: 2009-8-22 23:31
求教一个问题
* ~$ ^' O$ A+ R, T我有一个繁体字库,和chinese.fnt几乎是一样的,我想将它转为简体字库,不知道可以不,怎么转?
. j$ b! O: m4 F% D$ s( g5 eps: 只是改字库,也就是将繁体字库中“劉”改为“刘”,字库中顺序不变。字库是16*15的
作者: shane007    时间: 2009-8-22 23:56
heiheiha 你好。4 u3 A0 K% T7 [% _  m

' {) W: ], a% k- V3 r7 o4 N& Y) c9 e' _转换是完全可行的,不过必须要自己制作一个小工具。
% p' y: @2 U, P' d' A% Z* W2 y8 N在此我只能告诉你大致的制作顺序。  ~% x) C1 ^. A/ }& e+ c

  M9 ^! o2 ^- {& D& Q: z$ z- ~1. 用一个工具把简体TTF字库转化为16*15的点阵字库。
' C: ?2 g! B& r! r3 v  y2. 制作1个包含了简体16*15的点阵字库的所有文字的文本文件A。
) p$ V4 F7 |2 |, k3. 用一个工具把简体文本文件转化为繁体文本文件B。
$ a( N% ?" P8 S" }" Q# M2 V2 |7 d4.制作繁体文本文件到简体文本文件的索引对照表
2 O" _) D9 K+ M( q4 B1 R1 {5.按照索引对照表逐个替换字模' L5 N5 d$ H. r% ~
+ j: [; ]* U  |
不知道你要这样转换的目的是什么?
作者: shane007    时间: 2009-8-23 09:59
这是字模图
作者: heiheiha    时间: 2009-8-23 10:28
但是这一步这么做呢?用上述那个软件吗?
( G  M* W3 i; }$ V4.制作繁体文本文件到简体文本文件的索引对照表
作者: shane007    时间: 2009-8-23 10:51
引用第6楼heiheiha于2009-08-23 10:28发表的  :
% R; `3 b) W) q5 j' Y7 z* I6 Y但是这一步这么做呢?用上述那个软件吗?
5 r5 O) R; v# V4.制作繁体文本文件到简体文本文件的索引对照表
! G4 ~! K% @. k: {
这个很容易啊。
# [8 i' f5 i' D! Z# H
6 E& ^0 `' A4 U* p, g! _假设繁体字的编码为高位A1,低位B1,字库索引计算公式为f1(A1,B1)
  [  d$ E$ j2 C再假设简体字的编码为高位A2,低位B2,字库索引计算公式为f2(A2,B2)/ j' T3 U, |' C2 [$ x

( `0 ^' `; J8 E7 ]; V" k现在先从繁体字文本里面读取2个字节A1,B1, (比如说是第1,2个字节)
: H3 d9 g; J+ ?' h: M9 x再从简体字文本里面找到对应的2个字节A2,B2,(也是第1,2个字节)
, z$ P  g& h3 _! W- \6 `6 ]根据f2(A2,B2)找到这个字的简体索引,取30个字节获得字模.+ ^) Y1 p3 z9 M# }# R% q9 v
这个字模就是第1个字的简体字模,
4 F& [* a5 d" \) `第1个字的繁体字库索引是f1(A1,B1),
( }! p* c9 Z6 V* ?把上面的简体字模写到繁体字库索引开始的30个字节里面," r4 X0 {1 Z1 S+ L3 ^" g
即完成了第一个繁体字的简体化变换,$ `, [) M" e9 O- e0 {  J% O! u
如此循环到繁体字文本结束即可.
作者: shane007    时间: 2009-8-23 10:54
不知道能否看懂?
作者: heiheiha    时间: 2009-8-23 12:00
懂了,非常感谢
# e/ m# w4 `5 v* `" T简体的索引公式和big5的索引公式我知道,但是具体font16.rar字库我不知道其索引公式,这怎么办?
作者: shane007    时间: 2009-8-23 12:14
其实,这也很简单。6 v1 h, w5 o" ?+ ?0 n
3 h( Z; z$ X; {9 e) d' T
所谓索引,就是这个字在字库中是第几个字。
& S1 \! M7 m# h0 X1 N" l8 R由于每个字占30个字节,那么索引为A的话,在字库里的索引就是A-1乘30。
1 J; Q" Z6 ?; Z& |0 B2 o比如第2个字,在字库的索引就是30。
( R* ]4 j! K* Z7 n" B
+ w: U& Y0 j+ Q$ v0 D! k5 \对了,这位朋友能否介绍一下你自己?以及你现在在研究的汉化项目?
作者: heiheiha    时间: 2009-8-23 12:57
汉化? 呵呵,我还从来没汉化过什么项目呢




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2