minecraft吧 关注:2,561,017贴子:31,987,663
  • 7回复贴,共1

一些关于glyph_sizes.bin的信息

只看楼主收藏回复

试着自己搞了下自定义字体,但是部分字符显示不全十分的烦人,终于忍无可忍深入研究了下,首先怀疑的对象就是\assets\minecraft\font目录下的 glyph_sizes.bin ,百度了下果然就是这货的原因, glyph_sizes.bin 的用途就是控制字符宽度,具体作用方法百度了下没结果,Doodle了下还是没结果,大概是因为大家都觉得太简单了吧,但是对于没有二进制文件概念的人来说还是有点小麻烦,索性写出来和大家分享(shui)一下。


1楼2015-09-17 00:20回复
    Minecraft使用的是Unicode编码(详情百度),Unicode编码的每个字符由2字节构成,也就是4位十六进制数,首先使用任意一款十六进制编辑软件(例如WinHEX)打开glyph_sizes.bin,\assets\minecraft\textures\font目录下每个unicode_page开头的png文件代表Unicode码的一页,文件后缀前面的两位数字相当于Unicode编码页码,也就是4位十六进制数的前两位,图片中的行便是第三位,列便是第四位,在 glyph_sizes.bin中对应的偏移位置的数据便是该字符的字符宽度数据,字符宽度数据由2字节构成,第一个字节是字符的起始像素,第二个字节是结束像素(默认16px的字体,其他分辨率的字体就当分数看)。


    2楼2015-09-17 00:21
    收起回复
      2025-08-31 03:01:04
      广告
      不感兴趣
      开通SVIP免广告

      举例:半角的美元符号"$"的Unicode码是0x0024,前两位是00,所以它在unicode_page_00.png上后两位是24,所以它在2行4列上(从0开始数)在glyph_sizes.bin中0x0024偏移位上的数据是0x17,所以"$"的起始像素是1,结束像素是7。


      3楼2015-09-17 00:21
      收起回复
        还以为是2进没想到是16进


        来自手机贴吧5楼2015-09-17 01:15
        收起回复
          战略性马克


          IP属地:广东来自Android客户端6楼2015-09-17 01:26
          回复