# include“l_bitmap.h”
L_LTIMGOPT_APIL_INTL_OptOptimizeBuffer (pOrgImgBuffer、uOrgImgBufferSize phOptImgBuffer、puOptImgBufferSize pOptImgOptions, pfnOptBufferCB, pUserData)
优化图像格式支持缓冲区使用传递的优化选项。
指针指向原始图像在内存中缓冲。图像格式的记忆应该是其中一个图像优化支持的格式。
原始图像的大小,以字节为单位,在内存中,这是引用的pOrgImgBuffer
参数。
地址的内存句柄被更新优化的图像缓冲区。用户负责释放它通过调用GlobalFree窗口函数。
指针变量更新与优化的图像缓冲区的大小在内存中,这是引用的phOptImgBuffer
。
指针指向一个OPTIMIZEIMAGEOPTIONS包含选项用于结构优化。通过零使用默认的优化选项。
可选的回调函数进行额外的处理。如果你不提供一个回调函数,使用NULL作为该参数的值。如果你提供一个回调函数,使用函数指针作为该参数的值。回调函数必须遵守所描述的函数原型OPTIMIZEBUFFERCALLBACK函数。
空指针,您可以使用它通过一个或多个回调函数需要额外的参数。要使用该功能,赋值给一个变量或创建一个结构,其中包含你需要的尽可能多的领域。然后,在这个参数,通过变量的地址或结构,铸造L_VOID *。回调函数,接收地址的pUserData参数,可以把它适当的数据类型的指针来访问变量或结构。如果不需要额外的参数,该参数可以传递NULL。
价值 | 意义 |
---|---|
成功 | 函数是成功的。 |
< 1 | 一个错误发生。指返回代码。 |
这个函数优化指定的缓冲,减少其大小,根据指定的优化选项。
将初始化的函数phOptImgBuffer
处理和分配所需的存储优化的图像。因为该函数分配存储优化图像,用户必须通过调用Windows GlobalFree释放分配的内存的函数。
注意,要优化的图像缓冲区应该的图像优化支持的格式否则,函数将返回一个错误。
您可以优化一个图像在内存中缓冲如下:
将图像保存到优化(原始图像)在内存中,并得到一个指向第一个字节的图像。通过这个指针的pOrgImgBuffer
参数。通过大小,以字节为单位,在记忆的形象uOrgImgBufferSize
参数。
声明一个内存处理(HGLOBAL)作为phOptImgBuffer参数变量并将其地址。该函数将分配和释放内存需要保存优化图像缓冲区。
声明一个长整数(L_UINT32)变量。通过这个变量的地址puOptImgBufferSize
参数。这个函数将更新该变量的大小,以字节为单位,优化的图像缓冲区。
确定使用的优化选项,通过下列之一:
通过零的pOptImgOptions
参数优化图像缓冲区使用默认的优化选项。
被调用默认的优化选项L_OptGetDefaultOptions功能、结构和更新值。通过更新的地址pOptImgOptions优化选择结构参数。
调用这个函数来优化图像缓冲区和更新phOptImgBuffer
和puOptImgBufferSize变量优化缓冲区和缓冲区大小。
这个函数不支持32位灰度图像。它返回错误代码ERROR_GRAY32_UNSUPPORTED如果一个32位的灰度图像是传递给这个函数。
必需的dll和库
x64 Win32。
这个函数会默认优化选项来优化的图像缓冲区指出phOrgImgBuffer参数。
L_INT EXT_CALLBACK fnOptBufferCB (L_INT nPercent,
L_VOID * pUserData)
{
UNREFERENCED_PARAMETER (pUserData);
L_TCHAR buf [256];/ /消息缓冲区
wsprintf (buf文本(“% d”),nPercent);
对话框(零、缓冲区、文本(“优化”),MB_OK);
返回成功;
}
L_INT OptOptimizeBufferExample (L_UCHAR * phOrgImgBuffer,
L_SIZE_T uOrgImgBufferSize,
L_VOID * pUserData)
{
HGLOBAL hOptImgBuffer =零;/ *处理优化缓冲区在内存* /
L_SIZE_T uOptImgBufferSize = 0;/ *优化缓冲区的大小在内存* /
OPTIMIZEIMAGEOPTIONS OptImgOptions;* / / *优化选择结构
L_SIZE_T * pOptImgBuffer =零;
/ /默认的优化选项。
L_INT nRet = L_OptGetDefaultOptions (&OptImgOptions,运算符(OPTIMIZEIMAGEOPTIONS));
如果(nRet = =成功)
{
/ /优化图像缓冲区
nRet = L_OptOptimizeBuffer (phOrgImgBuffer,
uOrgImgBufferSize,
&hOptImgBuffer,/ /更新。
&uOptImgBufferSize,/ /更新。
&OptImgOptions,
fnOptBufferCB,
pUserData);
如果(nRet = =成功)
{
/ /优化缓冲,我们必须锁定它。
pOptImgBuffer = (L_SIZE_T *) GlobalLock (hOptImgBuffer);
如果(pOptImgBuffer)
{
/ *现在,pOptImgBuffer愿;为您可以创建一个磁盘文件示例
和转储这缓冲。* /
/ /。
/ /。
/ /。
/ /释放内存缓冲区。
GlobalUnlock (hOptImgBuffer);
/ /免费由L_OptOptimizeBuffer Meory缓冲区分配的功能。
GlobalFree (hOptImgBuffer);
}
}
}
返回nRet;
}
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。