L_AnnSaveMemory

# include“l_bitmap.h”

L_LTANN_APIL_INTL_AnnSaveMemory (hObject、uFormat fSelected、phMem puMemSize, pSaveOptions)

保存指定的注释文件在内存中。

参数

HANNOBJECThObject

包括所有对象处理根注释对象保存在文件中。这通常是一个容器对象。

L_UINTuFormat

为保存注释数据格式。可能的值是:

价值 意义
ANNFMT_EMF [0 x0006]使用Windows EMF格式。
ANNFMT_ENCODED [0 x0004]另存为一个二进制格式。注意:这个格式已经被ANNFMT_XML取代,不再支持。
ANNFMT_NATIVE [0 x0000]使用铅的格式的注释。注意:这个格式已经被ANNFMT_XML取代,不再支持
ANNFMT_TIFFTAG [0 x0002]保存所有注释属性,包括那些不支持的王规范作为ANNTAG_TIFF标签。
ANNFMT_WANGTAG [0 x0003]王只保存注释支持的属性规范作为ANNTAG_TIFF标签。
ANNFMT_WMF [0 x0001]使用Windows WMF格式。
ANNFMT_XML [0 x0005]保存为XML文本格式。这是导致新的向上兼容的基于文本的格式。它应该用来代替ANNFMT_NATIVE。

L_BOOLfSelected

国旗表明哪些对象来保存。可能的值是:

价值 意义
真正的 保存所有的对象有选中的属性设置为TRUE。为获取和设置选中的属性,使用L_AnnGetSelectedL_AnnSetSelected功能。
只保存指定的对象。

HGLOBAL* phMem

一个变量的地址更新内存处理。这个函数使用处理分配的内存。它解锁的内存完成后保存。

L_SIZE_T* puMemSize

一个变量的地址更新文件的大小。

pSAVEFILEOPTIONpSaveOptions

指针指向一个SAVEFILEOPTION结构,其中包含可选的扩展保存选项。此信息用于添加注释页面或替换一个多页注释页注释文件。通过零保存一个一页注释文件。

返回

价值 意义
成功 函数是成功的。
< 1 一个错误发生。指返回代码

评论

在version 15.0中,基于文本的格式ANNFMT_XML取代ANNFMT_NATIVE ANNFMT_ENCODED。注意,ANNFMT_NATIVE和ANNFMT_ENCODED不再支持选项L_AnnSave,L_AnnSaveOffset,L_AnnSaveMemory

为了向后兼容,这个最新版本的LEADTOOLS可以读取中断的格式(ANNFMT_NATIVE和ANNFMT_ENCODED)使用以下功能:

ANNFMT_XML格式提供了许多优势年长的注释格式:

保存注释WMF格式只在另一个应用程序使用。只在本机格式LEADTOOLS读取注释。

保留缩放和定位信息,这个函数总是保存根容器,以及指定的对象或选中的对象。使用hObjectfSelected参数如下:

ANNFMT_TIFFTAG和ANNFMT_WANGTAG可以保存在一个TIFF文件使用L_SetTag随着uTag ANNTAG_TIFF和uType TAG_BYTE。

检测是否TIF文件注释信息,你应该打电话L_ReadFileTag,看看ANNTAG_TYPE存在。

如果uFormatANNFMT_XML,phMem更新内存处理注释文件在内存中。

如果uFormat ANNFMT_TIFFTAG或ANNFMT_WANGTAG phMem更新内存处理标签。

如果你节省内存处理气管无名动脉瘘管的标签或王格式,使用L_AnnSaveMemory,您必须编写内存处理标签到一个文件中使用L_SetTagL_SaveBitmapMemory之前,你可以使用负载L_AnnLoadMemory函数。

如果这个函数返回成功和phMem更新为空,没有注释对象来保存。

中的信息SAVEFILEOPTION结构可以用来添加新页面或替换现有的页面在一个多页注释ANNFMT_XML类型的文件。注意所有的页面注释ANNFMT_XML多页文件必须所有类型。一个注释文件不能包含页不同的格式类型。

插入新页注释多页文件:

  1. 声明一个变量的类型SAVEFILEOPTION
  2. 设置SAVEFILEOPTION。uFlags ESO_INSERTPAGE字段。
  3. 设置SAVEFILEOPTION。PageNumber字段插入的位置。新页面将在前面插入页面PageNumber字段中指定。

替换现有页面在一个注释多页文件:

  1. 声明一个变量的类型SAVEFILEOPTION
  2. 设置SAVEFILEOPTION。uFlags ESO_REPLACEPAGE字段。
  3. 设置SAVEFILEOPTION。PageNumber页面来替代。

从一个注释多页文件,删除一个页面使用L_AnnDeletePage,L_AnnDeletePageMemory,L_AnnDeletePageOffset

当添加或替换一个注释页面在一个现有的内存文件,通过一个有效的地址HGLOBAL hMem(非零)。当创建一个新的内存文件,声明一个变量的类型HGLOBAL并将其设置为零之前L_AnnSaveMemory的地址。

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

另一个例子,请参考L_AnnFileInfoMemory

L_INT AnnSaveMemoryExample (HWND HWND, HANNOBJECT hContainer){HANNOBJECT TmpContainer;/ *注释* /临时容器HGLOBAL hTag;/ * * /内存处理L_SIZE_T zMemSize;/ *内存中的数据的大小* /L_UCHAR * pData;/ *指针指向内存中的数据* /L_INT nRet;HDC HDC;矩形rAnnBounds;矩形rAnnBoundsName;* / / *加载初始注释nRet = L_AnnLoad (MAKE_IMAGE_PATH(文本(“cannon.ann”))、&TmpContainer零);如果(nRet ! =成功)返回nRet;/ *注释为TIFF标签保存在内存* /hTag = 0;nRet = L_AnnSaveMemory (TmpContainer ANNFMT_TIFFTAG,假,&hTag &zMemSize, NULL);如果(nRet ! =成功)返回nRet;/ *获取指针指向的内存驻留标记* /pData = (L_UCHAR *) GlobalLock (hTag);/ *设置标签保存为位图时TIFF,标记也救了* /nRet = L_SetTag (ANNTAG_TIFF、TAG_BYTE (L_UINT) zMemSize pData);如果(nRet ! =成功)返回nRet;L_AnnDestroy (TmpContainer ANNFLAG_RECURSE);/ *从内存加载新文件* /nRet = L_AnnLoadMemory (pData zMemSize &TmpContainer, NULL);如果(nRet = =成功){/ *插入注释的主要容器,hContainer,所以他们将活跃。* /nRet = L_AnnInsert (hContainer TmpContainer,真的);如果(nRet ! =成功)返回nRet;hdc = GetDC (hWnd);nRet = L_AnnGetBoundingRect (hContainer &rAnnBounds &rAnnBoundsName);如果(nRet ! =成功)返回nRet;nRet = L_AnnDraw (hdc &rAnnBounds hContainer);如果(nRet ! =成功)返回nRet;ReleaseDC (hWnd, hdc);}其他的返回nRet;L_AnnDestroy (TmpContainer ANNFLAG_RECURSE);/ * * /清理干净GlobalUnlock (hTag);GlobalFree (hTag);返回成功;}

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