# include“l_bitmap.h”
L_LTJP2_APIL_INTEXT_FUNCTIONL_Jp2SaveComposite(hJp2, pszFile, pComposite, eFormat, nBitsPerPixel, nQFactor, pSaveOptions, pSaveCallBack, pUserData)
使用中提供的层信息,以任何受支持的jpeg2000文件格式创建文件pComposite
。
控件创建的jpeg2000引擎句柄L_Jp2Create函数。
包含jpeg2000文件名称的字符串。
指向L_JP2_JPXCOMPOSITE结构,为所有要保存的层提供信息(颜色、不透明度、预不透明度和压缩)。
输出JPEG 2000文件格式。
结果文件像素深度。取值为:8、12、16、24、32、48、64和0。零[0]意味着每个位图将保存其每像素位值,如果该值等于可能的值之一(8,12,16,24,32,48或64)。如果它不是可能的值之一,它将返回:ERROR_J2K_UNSUPPORTED。
质量的因素。这个值决定了压缩过程中的损失程度。取值范围为0 ~ 255。零(0)表示无损压缩。1到255之间的值被解释为压缩比。
指向可选扩展保存选项的指针。传递NULL以使用默认的保存选项。
用于额外处理的可选回调函数。如果不提供回调函数,则传递NULL。如果提供回调函数,则使用函数指针作为该参数的值。回调函数必须遵循中描述的语法FILESAVECALLBACK。
可用于传递回调函数使用的一个或多个附加参数的空指针。要使用此特性,请为变量赋值或创建包含所需字段的结构。然后,在这个参数中,传递变量或结构的地址,将其强制转换为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、复合);
返回成功;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗网络查看器net
188宝金博怎么下载
支持的平台上
.NET、Java、Android和iOS/macOS程序集
C API/ c++类库
HTML5 JavaScript库
您的邮件已发送给技术支持!应该有人联系!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格,开始新的聊天。
所有代理目前都离线。
聊天时间:
星期一至星期五
美国东部时间上午8:30 -下午6点
如需与我们联系,请填写此表格,我们将通过电子邮件与您联系。