función wiasDownSampleBuffer (wiamdef.h)
La función
Sintaxis
HRESULT wiasDownSampleBuffer(
LONG lFlags,
[in, out] WIAS_DOWN_SAMPLE_INFO *pInfo
);
Parámetros
lFlags
Especifica un conjunto de marcas que determinan el comportamiento de esta función. Actualmente, solo se define la marca siguiente.
Bandera | Significado |
---|---|
WIAS_GET_DOWNSAMPLED_SIZE_ONLY | No copie los datos de muestreo inactivos en el búfer de destino. En su lugar, establezca los siguientes miembros de la estructura WIAS_DOWN_SAMPLE_INFO: ulDownSampledHeight, ulDownSampleWidth, ulAlignedHeight, ulAlignedWidth. |
[in, out] pInfo
Puntero a la estructura WIAS_DOWN_SAMPLE_INFO que contiene toda la información necesaria para la operación de muestreo descendente.
Valor devuelto
Si la función se ejecuta correctamente, devuelve S_OK.
Si se produce un error en la función, devuelve un error COM estándar o uno de los códigos de error WIA.
Observaciones
La función wiasDownSampleBuffer se puede usar de cualquiera de las dos maneras siguientes:
El autor de la llamada especifica el ancho y el alto de la ulDownSampledWid th y ulDownSampledHeight miembros de la estructura WIA_DOWN_SAMPLE_INFO.
El autor de la llamada establece el de
ulDownSampledWidth y ulDownSampledHeight miembros de la estructura deWIA_DOWN_SAMPLE_INFO en cero, lo que indica que la función debe elegir el ancho y el alto de salida.
Para ver qué valores de ancho y alto de salida elige la función, llame a esta función con el parámetro lFlags establecido en WIAS_GET_DOWNSAMPLED_SIZE_ONLY. A cambio, el ulDownSampledWidth y miembros ulDownSampledHeight se establecen en sus nuevos valores. En este caso, no se realiza ningún muestreo descendente.
El autor de la llamada de esta función es necesario para rellenar los siguientes miembros de la estructura WIA_DOWN_SAMPLE_INFO:
ulOriginalWidth
ulOriginal Height
ulBitsPerPixel
ulXRes
ulYRes
pSrcBuffer
La función wiasDownSampleBuffer espera ulBitsPerPixel ser 1, 8 o 24, correspondientes a datos de 1, 8 y 24 bits por píxel. El autor de la llamada también puede especificar el tamaño de los datos de muestreo descendente rellenando los siguientes miembros de estructura WIA_DOWN_SAMPLE_INFO: - ulDownSampledWidthulDownSampledHeight
Si ya se ha asignado el búfer que recibe los datos de muestreo inactivos, el autor de la llamada debe rellenar estos miembros de estructura WIA_DOWN_SAMPLE_INFO:
ulDestBufSize
ulSrcBufSize
pDestBuffer
Si el autor de la llamada establece pDestBuffer en NULL, el servicio WIA asigna el búfer de destino. A partir de esta función, pDestBuffer apunta al búfer de destino. El autor de la llamada es responsable de liberar esta memoria cuando finaliza la operación y lo hace llamando a CoTaskMemFree en el búfer.
Dado que esta función no puede generar líneas de salida parciales, el número de líneas de examen en el búfer de entrada debe ser un entero múltiplo del factor de escalado. Por ejemplo, supongamos que el búfer de entrada contiene una imagen muestreada a 600 ppp, que pretende reducir a una imagen equivalente de 50 ppp. En este caso, se reduce verticalmente la imagen original por un factor de 12 (porque 600 / 50 = 12). Esto significa que la función debe recibir 12 líneas de entrada para cada línea de salida que genera.
Si la imagen original tiene una resolución de Ren ppp, y se va a reducir verticalmente a una imagen con una resolución de R ppp, el factor de reducción vertical es Ren / Rfuera, y el número de líneas del búfer de entrada debe ser un múltiplo de Ren / Rfuera. Si el encabezado del examen alcanza la última banda de la imagen original y hay demasiadas líneas de examen en el búfer de entrada para generar una línea de salida, rellene el búfer de entrada para que contenga el número necesario de líneas de datos. Si no lo hace, se producen resultados imprevisibles e incluso se puede producir un bloqueo del controlador.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de |
Escritorio |
encabezado de |
wiamdef.h (incluya Wiamdef.h) |
biblioteca de |
Wiaservc.lib |
DLL de |
Wiaservc.dll |