L_SetTag

# include“l_bitmap.h”

L_LTFIL_APIL_INTL_SetTag(uTag, uType, uCount, pData)

指定私有标记和要保存在TIFF文件中的标记数据。

参数

L_UINT16uTag

标记来标识TIFF文件中的数据。通常,您可以在0x8000到0xFFFE的范围内指定私有标记。但是,如果你使用以下任何一个注册标记,LEADTOOLS将返回一个错误:

价值 意义
0 x8298 版权的评论
0 x8769 Exif将军评论
0 x8825 Exif GPS评论

如果你设置了:

价值 意义
0 x80a4 注释TIFF标记定义为ANNTAG_TIFF。

L_UINT16uType

带标记的数据类型。有效值为:

价值 意义
TAG_BYTE [1]字节。
TAG_ASCII [2]字节,取值范围为0 ~ 255。
TAG_SBYTE [6]字节,用作有符号数,取值范围为-128 ~ +127。
TAG_UNDEFINED [7]字节,应用程序定义的用法。
TAG_SHORT [3]两个字节,无符号。
TAG_SSHORT [8]两个字节,带符号。
TAG_LONG [4]四个字节,无符号。
TAG_SLONG [9]四个字节,带符号。
TAG_RATIONAL [5]八个字节,用作一对无符号长整数,其中第一个数字是分子,第二个数字是分数的分母。
TAG_SRATIONAL [10]八个字节,用作一对有符号的长整数,其中第一个数字是分子,第二个数字是分数的分母。
TAG_FLOAT [11]用作浮点数的四个字节。
TAG_DOUBLE [12]用作双精度浮点数的8个字节。
TAG_IFD [13] 32位IFD偏移量。
TAG_LONG8 [16]无符号64位整数(仅BigTIFF格式有效)。
TAG_SLONG8 [17]带符号的64位整数(仅BigTIFF格式有效)。
TAG_IFD8 [18] 64位IFD偏移量(仅对BigTIFF格式有效)。

L_UINTuCount

基于标记数据类型的数据项计数。例如,如果缓冲区大小为16,数据类型为TAG_DOUBLE,则计数为2。

L_VOID* pData

指向缓冲区的指针,其中包含使用标记保存的数据。

返回

价值 意义
成功 活动很成功。
< 1 发生错误。指返回代码

评论

该函数将数据从缓冲区复制到内部分配的缓冲区。在调用此函数后,您应该释放自己的缓冲区。在清除标记之前,保存的任何TIFF文件都将包含带标记的数据。LEADTOOLS在内存中保存了一个标记列表。该列表包含所有直接(通过调用L_SetTag)或间接(通过调用L_SetTag)设置的标记L_AnnSaveTag).所有这些标签都将被保存,除非您清除它们。清除标记并将其从列表中删除的方法是调用L_SetTag(uTag, 0,0, NULL)。L_SetTag(0,0,0,NULL)将从标签列表中删除所有标签。

有关TIFF标签的一般信息,请参阅实现TIFF注释和标签

笔记

必需的dll和库

平台

Win32, x64, Linux。

另请参阅

功能

主题

例子

这个例子指定了一个标记,用于记录公司标志在图像上的位置。
它使用L_SetTag设置标记;使用L_GetTag测试标记;然后保存一个带有新标记的TIFF文件。
有关从文件中读取相同标记的示例,请参阅L_ReadFileTag。

L_INT SetTagExample(pBITMAPHANDLE)L_INT nRet;L_TCHAR msgbuf [80];/ *缓冲消息字符串*/L_UINT16 logposition = 0x8001;/ *我私人标签* /L_UINT16 TagType = TAG_SSHORT;/*标记的数据类型*/L_UINT32 TagCount = 4;/*数据项个数*/L_INT TagData[] = {5,5,24,37};L_VOID * pTagData = &TagData;/*指针指向包含数据*/的缓冲区/*设置要保存的标签数据*/nRet = L_SetTag(logposition, TagType, TagCount, pTagData);如果(nRet != SUCCESS)返回nRet;/*清除变量,以便验证数据*/TagType = 0;TagCount = 0;TagData[0] = 0;TagData[1] = 0;TagData[2] = 0;TagData[3] = 0;/*获取准备保存的标签数据*/nRet = L_GetTag(logposition, &TagType, &TagCount, pTagData);如果(nRet < SUCCESS)返回nRet;/*显示数据*/如果((TagType == TAG_SSHORT) && (TagCount == 4))wsprintf (msgbuf文本("X = %d\nY= %d\nWidth = %d\nHeight = %d"),((L_INT *) pTagData) [0],((L_INT *) pTagData) [1],((L_INT *) pTagData) [2],((L_INT *) pTagData) [3]);消息框(NULL, msgbuf, TEXT(“商标位置”), MB_OK);/*保存带有*/标记的文件L_SaveBitmap(MAKE_IMAGE_PATH(TEXT)“TEST.TIF”)), pBitmap, FILE_TIF, pBitmap->BitsPerPixel, 0, NULL);如果(nRet != SUCCESS)返回nRet;/*从内存中清除标签*/nRet = L_SetTag(0, 0, 0, NULL);返回成功;

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