Einzelnen Beitrag anzeigen

bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
1.136 Beiträge
 
Delphi 11 Alexandria
 
#1

GDI+ viele Encoder parameter setzen ARRAY[0.0.]

  Alt 11. Jul 2012, 15:36
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}

Geändert von bernhard_LA (11. Jul 2012 um 18:46 Uhr)
  Mit Zitat antworten Zitat