wiasDownSampleBuffer 函数 (wiamdef.h)
wiasDownSampleBuffer 函数采用 DWORD 对齐像素数据的缓冲区,并将其(生成分辨率较低的图像数据)缩小到指定大小和分辨率。
语法
HRESULT wiasDownSampleBuffer(
LONG lFlags,
[in, out] WIAS_DOWN_SAMPLE_INFO *pInfo
);
参数
lFlags
指定一组标志,用于确定此函数的行为。 目前,仅定义了以下标志。
旗 | 意义 |
---|---|
WIAS_GET_DOWNSAMPLED_SIZE_ONLY | 不要将向下采样的数据复制到目标缓冲区。 相反,请设置 WIAS_DOWN_SAMPLE_INFO 结构的以下成员:ulDownSampledHeight、ulDownSampleWidth、ulAlignedHeight、ulAlignedWidth。 |
[in, out] pInfo
指向 WIAS_DOWN_SAMPLE_INFO 结构的指针,该结构包含向下采样操作所需的所有信息。
返回值
成功后,该函数将返回S_OK。
如果函数失败,它将返回标准 COM 错误或 WIA 错误代码之一。
言论
wiasDownSampleBuffer 函数可通过以下两种方式之一使用:
调用方通过设置 ulDownSampledWidth 和 ulDownSampledHeight 结构 WIA_DOWN_SAMPLE_INFO 的成员来指定向下采样(即输出)宽度和高度。
调用方将 ulDownSampledWidth 和 ulDownSampledHeightWIA_DOWN_SAMPLE_INFO 结构的成员设置为零,指示函数应选择输出宽度和高度。
若要查看函数选择的输出宽度和高度值,请使用设置为 WIAS_GET_DOWNSAMPLED_SIZE_ONLYlFlags 参数调用此函数。 返回时,ulDownSampledWidth 和 ulDownSampledHeight 成员设置为其新值。 在这种情况下,不会执行降级采样。
此函数的调用方需要填写 WIA_DOWN_SAMPLE_INFO 结构的以下成员:
ulOriginalWidth
ulOriginal Height
ulBitsPerPixel
ulXRes
ulYRes
pSrcBuffer
wiasDownSampleBuffer 函数要求 ulBitsPerPixel 为 1、8 或 24,对应于 1、8 和 24 位/像素数据。 调用方还可以通过填写以下 WIA_DOWN_SAMPLE_INFO 结构成员来指定降级数据的大小: - ulDownSampledWidthulDownSampledHeight
如果已分配接收降级数据的缓冲区,调用方应填写以下 WIA_DOWN_SAMPLE_INFO 结构成员:
ulDestBufSize
ulSrcBufSize
pDestBuffer
如果调用方 pDestBuffer 设置为 NULL,则目标缓冲区由 WIA 服务分配。 从此函数返回时,pDestBuffer 指向目标缓冲区。 调用方负责在操作完成后释放此内存,并通过在缓冲区上调用 CoTaskMemFree 来执行此操作。
由于此函数无法生成部分输出行,因此输入缓冲区中的扫描行数必须是缩放因子的整数倍数。 例如,假设输入缓冲区包含采样为 600 dpi 的图像,你打算将图像向下采样到等效的 50 dpi 图像。 在这种情况下,将原始图像缩减为 12(因为 600 / 50 = 12)。 这意味着该函数必须为每个生成的输出行接收 12 个输入行。
如果原始图像的 R
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | wiamdef.h (包括 Wiamdef.h) |
库 | Wiaservc.lib |
DLL | Wiaservc.dll |