wie setze ich denn mehrere Werte im encoderParameters gleichzeitig ??
Mein Versuch wie folgt : (geht leider nicht zum comilieren)
Delphi-Quellcode:
encoderParameters.Count := 3;
encoderParameters.Parameter[2].Guid := EncoderCompression;
encoderParameters.Parameter[2].Type_ := EncoderParameterValueTypeLong;
encoderParameters.Parameter[2].NumberOfValues := 1;
encoderParameters.Parameter[2].Value := @CompressionValue;
CompressionValue := CompressionNone;
encoderParameters.Count := 3;
encoderParameters.Parameter[1].Guid := EncoderColorDepth;
encoderParameters.Parameter[1].Type_ := EncoderParameterValueTypeLong;
encoderParameters.Parameter[1].NumberOfValues := 1;
encoderParameters.Parameter[1].Value := @ColorDepthValue;
// ColorDepthValue := PixelFormat16bppGrayScale;
ColorDepthValue := PixelFormat16bppRGB565;
///
// Save the image as ... a with quality level 0...100
//
encoderParameters.Count := 1;
encoderParameters.Parameter[0].Guid := EncoderQuality;
encoderParameters.Parameter[0].Type_ := EncoderParameterValueTypeLong;
encoderParameters.Parameter[0].NumberOfValues := 1;
encoderParameters.Parameter[0].Value := @quality;
quality := 1;
die Struktur ist ein Array [0 .. 0] ...
Delphi-Quellcode:
//---------------------------------------------------------------------------
// Encoder Parameter structure
//---------------------------------------------------------------------------
{$EXTERNALSYM EncoderParameter}
EncoderParameter =
record
Guid : TGUID;
// GUID of the parameter
NumberOfValues : ULONG;
// Number of the parameter values
Type_ : ULONG;
// Value type, like ValueTypeLONG etc.
Value : Pointer;
// A pointer to the parameter values
end;
TEncoderParameter = EncoderParameter;
{$EXTERNALSYM TEncoderParameter}
PEncoderParameter = ^TEncoderParameter;
{$EXTERNALSYM PEncoderParameter}
//---------------------------------------------------------------------------
// Encoder Parameters structure
//---------------------------------------------------------------------------
{$ALIGN 1}
{$EXTERNALSYM EncoderParameters}
EncoderParameters =
record
Count : UINT;
// Number of parameters in this structure
Parameter :
array[0..0]
of TEncoderParameter;
// Parameter values
end;
TEncoderParameters = EncoderParameters;
{$EXTERNALSYM TEncoderParameters}
PEncoderParameters = ^TEncoderParameters;
{$EXTERNALSYM PEncoderParameters}
{$ALIGN ON}