L_Jp2SaveComposite

# include“l_bitmap.h”

L_LTJP2_APIL_INTEXT_FUNCTIONL_Jp2SaveComposite(hJp2, pszFile, pComposite, eFormat, nBitsPerPixel, nQFactor, pSaveOptions, pSaveCallBack, pUserData)

使用中提供的层信息,以任何受支持的jpeg2000文件格式创建文件pComposite

参数

L_HJP2hJp2

控件创建的jpeg2000引擎句柄L_Jp2Create函数。

L_TCHAR* pszFile

包含jpeg2000文件名称的字符串。

pL_JP2_JPXCOMPOSITEpComposite

指向L_JP2_JPXCOMPOSITE结构,为所有要保存的层提供信息(颜色、不透明度、预不透明度和压缩)。

eJP2FILEFORMATeFormat

输出JPEG 2000文件格式。

L_INTnBitsPerPixel

结果文件像素深度。取值为:8、12、16、24、32、48、64和0。零[0]意味着每个位图将保存其每像素位值,如果该值等于可能的值之一(8,12,16,24,32,48或64)。如果它不是可能的值之一,它将返回:ERROR_J2K_UNSUPPORTED。

L_INTnQFactor

质量的因素。这个值决定了压缩过程中的损失程度。取值范围为0 ~ 255。零(0)表示无损压缩。1到255之间的值被解释为压缩比。

pSAVEFILEOPTIONpSaveOptions

指向可选扩展保存选项的指针。传递NULL以使用默认的保存选项。

FILESAVECALLBACKpSaveCallBack

用于额外处理的可选回调函数。如果不提供回调函数,则传递NULL。如果提供回调函数,则使用函数指针作为该参数的值。回调函数必须遵循中描述的语法FILESAVECALLBACK

L_VOID* pUserData

可用于传递回调函数使用的一个或多个附加参数的空指针。要使用此特性,请为变量赋值或创建包含所需字段的结构。然后,在这个参数中,传递变量或结构的地址,将其强制转换为L_VOID *。回调函数在自己的pUserData形参中接收地址,可以将其转换为适当数据类型的指针以访问变量或结构。如果不需要其他参数,则传递NULL。

返回

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

评论

L_Jp2SaveComposite使用中提供的层信息,以任何受支持的JPEG 2000文件格式创建一个文件pComposite。颜色位图必须在所有层中分配。如果没有分配任何颜色位图,函数将返回:ERROR_NO_BITMAP。所有的引擎盒都将被重置。JPEG 2000 part 1 (JP2)文件格式只支持一层。如果你在pComposite中设置了多个图层,只有第一层会被保存。另外,JPEG 2000 part 1 (JP2)文件格式不支持多个代码流,因此只会保存彩色位图。所有当前设置的引擎框也将保存在这个文件中。

必需的dll和库

平台

x64 Win32。

另请参阅

功能

主题

例子

这个例子以jpeg2000文件格式保存/加载复合位图

(L_UINT8 * pXMLData, L_SIZE_T uSize)L_HJP2 hEngine;L_INT nRet;L_UINT我;L_JP2_JPXCOMPOSITE复合;L_JP2_XML_BOX XMLBox;pL_JP2_MPEG7_BOX pMPEG7Box;L_UINT uNumOfMPEG7;/*创建JPEG 2000引擎句柄*/hEngine = L_Jp2Create();合成的。uStructSize =运算符(L_JP2_JPXCOMPOSITE);/*加载图像*/nRet = L_Jp2ReadComposite(hEngine,MAKE_IMAGE_PATH(TEXT(“image1.jpx”)),&合成,0,ORDER_BGR,NULL, NULL, NULL, NULL);如果(nRet != SUCCESS)返回nRet;/*读取MPEG7方框*/L_Jp2GetBoxes(hEngine, L_JPXB_MPEG7, (L_VOID**)&pMPEG7Box,&uNumOfMPEG7);/*重置所有引擎盒*/L_Jp2ResetBoxes (hEngine);/*设置JPX引擎盒*/如果(uNumOfMPEG7)L_Jp2SetBoxes (hEngine L_JPXB_MPEG7、pMPEG7Box uNumOfMPEG7);/*设置码流压缩类型*/(i = 0;i < Composite.uNumOfBitmaps;我+ +)Composite.pBitmaps[我]。eColorFormat = LEADJP2_J2K;Composite.pBitmaps[我]。eopaque format = LEADJP2_J2K;Composite.pBitmaps[我]。epreopaque format = LEADJP2_J2K;/*创建XML框*/XMLBox。uStructSize =运算符(L_JP2_XML_BOX);XMLBox。pData = pXMLData;XMLBox。uDataSize = uSize;/*设置JPX引擎XML框*/L_Jp2SetBoxes (hEngine, L_JPXB_XML &XMLBox 1);/*保存图像JPx格式* /nRet = L_Jp2SaveComposite(hEngine,MAKE_IMAGE_PATH(TEXT(“Test.jpx”)), &合成,LEADJP2_JPX, 24, 5,NULL, NULL, NULL);如果(nRet != SUCCESS)返回nRet;/*免费的MPEG7盒子*/如果(uNumOfMPEG7)L_Jp2FreeBoxes(hEngine, L_JPXB_MPEG7, pMPEG7Box, uNumOfMPEG7);/*摧毁引擎手柄*/L_Jp2Destroy (hEngine);/*免费的复合位图*/(i = 0;i < Composite.uNumOfBitmaps;我+ +)如果(Composite.pBitmaps[我].ColorBitmap.Flags.Allocated)L_FreeBitmap (&Composite.pBitmaps[我].ColorBitmap);如果(Composite.pBitmaps[我].OpacityBitmap.Flags.Allocated)L_FreeBitmap (&Composite.pBitmaps[我].OpacityBitmap);如果(Composite.pBitmaps[我].PreOpacityBitmap.Flags.Allocated)L_FreeBitmap (&Composite.pBitmaps[我].PreOpacityBitmap);/*自由复合结构*/L_Jp2FreeComposite (hEngine、复合);返回成功;

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