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 和 ulDownSampledHeightWIA_DOWN_SAMPLE_INFO 成員,來指定向下取樣的寬度和高度。
呼叫端會將 ulDownSampledWidth 和 ulDownSampledHeightWIA_DOWN_SAMPLE_INFO 結構的成員設為零,表示函式應該選擇輸出寬度和高度。
若要查看函式選擇的輸出寬度和高度值,請使用 lFlags 參數設定為 WIAS_GET_DOWNSAMPLED_SIZE_ONLY來呼叫此函式。 傳回時,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 個輸入行。
如果原始影像的解析度為 dpi 中的 R
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | wiamdef.h (包括 Wiamdef.h) |
連結庫 | Wiaservc.lib |
DLL | Wiaservc.dll |