public CWDH(EndianBinaryReader er) { Signature = er.ReadString(Encoding.ASCII, 4); SectionSize = er.ReadUInt32(); StartIndex = er.ReadUInt16(); EndIndex = er.ReadUInt16(); NextCWDHOffset = er.ReadUInt32(); CharWidths = new CharWidthInfo[EndIndex - StartIndex + 1]; for (int i = 0; i < EndIndex - StartIndex + 1; i++) { CharWidths[i] = new CharWidthInfo(er); // 3字节, LEFT,GLYPH WIDTH,CHAR WIDTH } }
public UInt32 CMAPOffset; //第一个CMAP的起始地址 public FINF(EndianBinaryReader er) { Signature = er.ReadString(System.Text.Encoding.ASCII, 4); //FINF SectionSize = er.ReadUInt32(); FontType = er.ReadByte(); //01 LineFeed = er.ReadByte(); //28 Width = er.ReadByte(); Ascent = er.ReadByte(); Padding = er.ReadByte(); Height = er.ReadByte(); AlterCharIndex = er.ReadUInt16(); DefaultWidth = new CharWidthInfo(er); Encoding = er.ReadByte(); TGLPOffset = er.ReadUInt32(); CWDHOffset = er.ReadUInt32(); CMAPOffset = er.ReadUInt32(); }
public CWDH(EndianBinaryReader er) { Signature = er.ReadString(Encoding.ASCII, 4); if (Signature != "CWDH") { throw new SignatureNotCorrectException(Signature, "CWDH", er.BaseStream.Position - 4); } SectionSize = er.ReadUInt32(); StartIndex = er.ReadUInt16(); EndIndex = er.ReadUInt16(); NextCWDHOffset = er.ReadUInt32(); CharWidths = new CharWidthInfo[EndIndex - StartIndex + 1]; for (int i = 0; i < EndIndex - StartIndex + 1; i++) { CharWidths[i] = new CharWidthInfo(er); } }
public FINF(EndianBinaryReader er) { Signature = er.ReadString(System.Text.Encoding.ASCII, 4); if (Signature != "FINF") { throw new SignatureNotCorrectException(Signature, "FINF", er.BaseStream.Position - 4); } SectionSize = er.ReadUInt32(); FontType = er.ReadByte(); LineFeed = er.ReadByte(); AlterCharIndex = er.ReadUInt16(); DefaultWidth = new CharWidthInfo(er); Encoding = er.ReadByte(); TGLPOffset = er.ReadUInt32(); CWDHOffset = er.ReadUInt32(); CMAPOffset = er.ReadUInt32(); Height = er.ReadByte(); Width = er.ReadByte(); Ascent = er.ReadByte(); Padding = er.ReadByte(); }