GDI+中TGPImage从流中加载图像

时间:2021-07-01 17:02:31

头部定义:

  encoderClsid: TGUID;
  encoderParameters: TEncoderParameters;
  Stream:TStreamAdapter;
  MemStream :TMemoryStream;
  quality:Cardinal;

程序体:

     FPreviewBMP := TGPImage.Create(filename);
     if GetEncoderClsid('image/png', encoderClsid) = -1 then exit;
     encoderParameters.Count := 1;
     encoderParameters.Parameter[0].Guid := EncoderQuality;
     encoderParameters.Parameter[0].Type_ := EncoderParameterValueTypeLong;
     encoderParameters.Parameter[0].NumberOfValues := 1;
     quality := 50;
     encoderParameters.Parameter[0].Value := @quality;
     MemStream := TMemoryStream.Create;
     Stream := TStreamAdapter.Create(MemStream);
     IStream(Stream)._AddRef;
     FPreviewBMP.Save(Stream,encoderClsid,@encoderParameters);
     FPreImage := TGPImage.Create(Stream);