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 함수는 다음 두 가지 방법 중 하나에서 사용할 수 있습니다.
호출자는 WIA_DOWN_SAMPLE_INFO 구조체의 ulDownSampledWidth 및 ulDownSampledHeight 멤버를 설정하여 다운샘플링된(즉, 출력) 너비와 높이를 지정합니다.
호출자는 WIA_DOWN_SAMPLE_INFO 구조체의 ulDownSampledWidth 및 ulDownSampledHeight 멤버를 0으로 설정하여 함수가 출력 너비와 높이를 선택해야 함을 나타냅니다.
함수가 선택하는 출력 너비 및 높이 값을 확인하려면 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 구조체 멤버를 입력하여 다운샘플링된 데이터의 크기를 지정할 수도 있습니다. - ulDownSampledWidth ulDownSampledHeight
다운샘플링된 데이터를 수신하는 버퍼가 이미 할당된 경우 호출자는 다음 WIA_DOWN_SAMPLE_INFO 구조체 멤버를 채워야 합니다.
- ulDestBufSize
- ulSrcBufSize
- pDestBuffer
호출자가 pDestBuffer 를 NULL 로 설정하면 대상 버퍼가 WIA 서비스에 의해 할당됩니다. 이 함수에서 반환되면 pDestBuffer는 대상 버퍼를 가리킵니다. 호출자는 작업이 완료되면 이 메모리를 해제하고 버퍼에서 CoTaskMemFree 를 호출하여 이 작업을 수행합니다.
이 함수는 부분 출력 줄을 생성할 수 없으므로 입력 버퍼의 검사 줄 수는 배율 인수의 정수 배수여야 합니다. 예를 들어 입력 버퍼에 해당하는 50dpi 이미지로 다운샘플링하려는 600dpi에서 샘플링된 이미지가 포함되어 있다고 가정합니다. 이 경우 원래 이미지의 배율을 12(600/50 = 12)로 축소합니다. 즉, 함수는 생성되는 각 출력 줄에 대해 12개의 입력 줄을 받아야 합니다.
원래 이미지의 Rin dpi 해상도가 있고 Rout dpi 해상도를 사용하여 이미지로 축소되는 경우 스케일 다운 계수는 Rin /Rout 이며 입력 버퍼의 줄 수는 Rin /Rout 의 배수여야 합니다. 스캔 헤드가 원본 이미지의 마지막 밴드에 도달하고 입력 버퍼에 출력 줄을 생성할 수 있는 검사 줄이 너무 적으면 입력 버퍼에 필요한 수의 데이터 줄이 포함되도록 입력 버퍼를 채우세요. 이렇게 하지 않으면 예측할 수 없는 결과가 발생하며 드라이버 크래시가 발생할 수도 있습니다.
요구 사항
| 대상 플랫폼 | 바탕 화면 |
| 헤더 | wiamdef.h(Wiamdef.h 포함) |
| 라이브러리 | Wiaservc.lib |
| DLL | Wiaservc.dll |
참조
피드백
다음에 대한 사용자 의견 제출 및 보기