0
我试图围绕truetype规范包裹头部。在this page的部分'cmap'格式4中,参数idDelta被列为无符号的16位整数(UInt16)。然而,进一步下来,给出了一些例子,这里idDelta给出了值-9,-18,-27和1.这是怎么回事?负unsigned int?
我试图围绕truetype规范包裹头部。在this page的部分'cmap'格式4中,参数idDelta被列为无符号的16位整数(UInt16)。然而,进一步下来,给出了一些例子,这里idDelta给出了值-9,-18,-27和1.这是怎么回事?负unsigned int?
该页面上的idDelta
的定义和使用不一致。在struct subheader
中,它被定义为int16
,而稍早的相同子标题被列为UInt16*4
。
这可能是规范中的一个错误。
如果你看一下实际的实现,like this one from perl Tk,你会看到idDelta通常给出签署:
typedef struct SUBHEADER {
USHORT firstCode; /* First valid low byte for subHeader. */
USHORT entryCount; /* Number valid low bytes for subHeader. */
SHORT idDelta; /* Constant adder to get base glyph index. */
USHORT idRangeOffset; /* Byte offset from here to appropriate
* glyphIndexArray. */
} SUBHEADER;
或者看到libpdfxx实现:
struct SubHeader
{
USHORT firstCode;
USHORT entryCount;
SHORT idDelta;
USHORT idRangeOffset;
};
感谢您的额外信息,我同意它必须是一个错误。 –
我在蟒蛇工作而标签仍然来自上一个问题。我的错。 –