IImageEncoder::SetEncoderParameters
A version of this page is also available for
4/8/2010
This method is used to set encoder parameters.
Your application must call this method prior to calling IImageEncoder::GetEncodeSink.
Syntax
HRESULT SetEncoderParameters(
const EncoderParameters* Param
);
Parameters
- Param
[in] A pointer to an EncoderParameters object containing the parameter data that will be set for the encoder.
Return Value
If successful, this method returns S_OK.
This method may return E_NOTIMPL if it fails.
Remarks
If the encoder does not support the combination of the encoding parameters, it ignores the call and returns S_FALSE.
The encoder should define a default set of encoder parameters in case the caller does not call this method, or calls the method with the wrong parameters.
By default, the encoder should save the image in the same color depth if it can support it. If not, the encoder should define the closest color depth for the source.
The following code shows how an application set two 2-parameter values for an encoder.
EncoderParameters* ParamsList;
LONG lCompression = EncoderValueCompressionNone; // No compression
LONG lColorDepth = 16; // 16 bpp
// Allocate enough memory for 2 parameters.
// Note that EncoderParameters automatically has room for one.
ParamsList = CoTaskMemAlloc(sizeof (EncoderParameters) +
1 * sizeof(EncoderParameter));
ParamsList->Count = 2;
ParamsList->Parameter[0].Guid = ENCODER_COMPRESSION;
ParamsList->Parameter[0].NumberOfValues = 1;
ParamsList->Parameter[0].Type = EncoderParameterValueTypeLong;
ParamsList->Parameter[0].Value = (void*) &lCompression;
ParamsList->Parameter[1].Guid = ENCODER_COLORDEPTH;
ParamsList->Parameter[1].NumberOfValues = 1;
ParamsList->Parameter[1].Type = EncoderParameterValueTypeLong;
ParamsList->Parameter[1].Value = (void*) &lColorDepth;
SetEncoderParameters(ParamsList);
Requirements
Header | imaging.h |
Library | Imaging.lib |
Windows Embedded CE | Windows CE 5.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |