FlashPix评论

FlashPix文件中的注释是一个连续的内存块,一个注释块。在注释块中是由注释头和注释数据组成的单独的注释。注释头包含有关注释的大小和类型的信息。注释头可以是FPXCOMMENT_HEADER_ELEMENT,如果注释由单个项组成(例如浮点数或短数),或者如果注释由项数组组成(例如短数组,字符数组或字符串数组),则它可能是FPXCOMMENT_HEADER_ARRAY。这些结构如下:

FPXCOMMENT_HEADER_ELEMENT

类型定义结构体_FPXCOMMENT_HEADER_ELEMENT{L_UINT32大小;L_UINT32类型;} FPXCOMMENT_HEADER_ELEMENT;

成员

大小

评论的大小。

类型

存储的注释类型。

评论

大小以字节为单位给出。类型引用枚举类型中的值FPXTYPE_DATA

FPXCOMMENT_HEADER_ARRAY

类型定义结构体_FPXCOMMENT_HEADER_ARRAY{L_UINT32大小;L_UINT32类型;L_UINT32元素;} FPXCOMMENT_HEADER_ARRAY;

成员

大小

评论的大小。

类型

存储的注释类型。

元素

数组中元素的个数。

评论

大小以字节为单位给出。类型引用枚举类型中的值FPXTYPE_DATA。Elements提供数组中元素的数量。

Comment标头后面是Comment数据。注释数据可以由简单数据组成,例如浮点值、子注释,或者一个或多个简单数据和一个或多个子注释的组合。组成子注释的部分将被称为子注释头和子注释数据。Comments和子注释都必须是Comment类型。

例如,注释类型为FlashPixLong的注释将包含一个注释头FPXCOMMENT_HEADER_ELEMENT。之后是Comment数据,由一个L_UINT32(4字节)保存长值。然而,注释类型为FlashPixCFAPatternBlock的注释数据由两个整数值和一个注释类型为FlashPixString的注释组成。本节末尾提供了FlashPix注释类型的列表。为了更好地理解FlashPix文件注释组织,请查看以下示例。

下图中的每个单元格表示1字节的内存。因此,L_UINT32的大小为4字节。

上面单元格给出的值表示存储在该内存段中的值。

注释类型在注释名称旁边的括号中给出。

宽字符的大小为2字节,由后跟空白字节的字符表示。

这里给出的示例包含“内容描述组”(CMNT_FPXCONTENTDESCRIPTIONGROUP)中的注释FlashPix文件注释)。第一条注释CMNT_FPXTESTTARGETINTHEIMAGE的注释类型是FlashPixLong。它由FPXCOMMENT_HEADER_ELEMENT和一个long类型的Comment数据元素组成。在注释头中,最左边的L_UINT32存储整个注释的大小。长数据元素的4个字节和Comment头中的2个L_UINT32成员的8个字节总共是12个字节。注释头中右边的L_UINT32成员存储了这个注释[FlashPixLong]的注释类型的值3。最后,最后一个L_UINT32 (data)保存Comment数据本身的值(0x0)。

下一个注释CMNT_FPXGROUPCAPTION非常相似。注释头存储了整个注释的大小(34字节)以及注释类型(FlashPixWideString)和字符串中的元素数量(11)。注释数据包含字符串本身(MY FRIENDS)。注意,由于数组是由宽字符组成的,因此字符串中的每个字符后跟一个空字节,以表明宽字符的大小为2字节。单词之间的空格和最后的'\0'包含在宽字符数中。

下一个注释几乎与CMNT_FPXGROUPCAPTION相同。

下一个评论CMNT_FPXPEOPLEINTHEIMAGE给出了一个评论类型为FlashPixWideStringArray的示例评论。这个注释头是FPXCOMMENT_HEADER_ARRAY。第一个L_UINT32存储整个Comment的大小,包括整个数组(52字节)。再次,下一个L_UINT32表示评论类型是FlashPixWideStringArray(10)。Comment头中最右边的L_UINT32成员存储了数组中出现的元素数量(2)。Comment数据由多个评论类型为FlashPixWideString的子评论组成,这些子评论组成了数组。同样,这些子注释由子注释头和子注释数据组成。数组中第一个FlashPixWideString子注释的子注释头以L_UINT32开头,该L_UINT32存储数组中该字符串的大小(20字节)。下一个L_UINT32表示后面(9或FlashPixWideString)的子注释的注释类型。请注意,整个注释的类型是FlashPixWideStringArray,但是该数组的每个成员的注释类型是FlashPixWideString。每个宽字符串的子注释头中的下一个L_UINT32成员存储字符串中元素的数量(4)。最后,每个子注释的子注释数据包含字符串BOB和TED。

注释的其余部分可以类似地解释。值得注意的是,这里看到的所有1字节单元格表示一个连续的内存块,因此它们会并排放在内存中。Comment组织的“展开”视图仅用于显示标题和数据部分的单个成员。

图像\ comment.gif

注释和子注释必须是特定的注释类型。下面列出了可用的注释类型。

以下声明与注释类型定义中包含的示例有关:

FPXCOMMENT_HEADER_ELEMENT * pElement;FPXCOMMENT_HEADER_ARRAY * pArray;L_UCHAR * pChar;L_UINT16 * pShort;L_UINT32 * pLong;L_FLOAT * pFloat;L_DOUBLE * pDouble;l_int i, j, uBytes;L_UCHAR Buffer[1024], String[] =“字符串”

FlashPixCFAPatternBlock(注释类型)

该注释用于存储描述颜色模式的行数、列数和数据数组。参考cmnt_fpxcfpatternFlashPix文件注释

L_UNIT32 size_of_structureL_UNIT32 type_of_structureL_UINT16 cfa_repeat_rowsL_UINT16 cfa_repeat_colsFlashPixString cfa_array

图像\ CmntCFA.gif
成员 描述
size_of_structure 这个评论的大小
type_of_structure 此注释的类型= FPXENUM_CFA_PATTERN_BLOCK
cfa_repeat_rows 包含定义颜色模式的行数的数据值
cfa_repeat_col 包含定义颜色模式的列数的数据值
cfa_array 颜色图案值的数据数组

例子

LEADTOOLS光栅成像C API帮助
188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领先科技有限公司版权所有。