如题,谢谢了

解决方案 »

  1.   

    procedure TForm1.JPEGToVariant(aJPEG : TJPEGImage; var aVariant:OleVariant); 
    var 
      Stream        : TMemoryStream; 
    begin 
        try 
          Stream := TMemoryStream.Create;       aJPEG.Assign(Image1.Picture.Bitmap); 
          aJPEG.SaveToStream(Stream);       StreamToVariant(Stream, aVariant); 
        finally 
           Stream.Free; 
       end; 
    end; 
    procedure TForm1.VariantToJPEG(aValue : OleVariant;var aJPEG:TJPEGImage); 
    var 
       Stream : TMemoryStream; 
    begin 
    try 
      Stream := TMemoryStream.Create;   VariantToStream (aValue,Stream); 
      aJPEG.LoadfromStream(Stream); finally 
       VariantClear(aValue); 
       Stream.free; 
    end; 
    end; 
      

  2.   

    procedure TForm1.VariantToStream (const v : olevariant; Stream : TMemoryStream); 
    var 
      p : pointer; 
    begin 
      Stream.Position := 0; 
      Stream.Size := VarArrayHighBound (v, 1) - VarArrayLowBound (v, 1) + 1; 
      p := VarArrayLock (v); 
      Stream.Write (p^, Stream.Size); 
      VarArrayUnlock (v); 
      Stream.Position := 0; 
    end; procedure TForm1.StreamToVariant (Stream : TMemoryStream; var v : OleVariant); 
    var 
      p : pointer; 
    begin 
      v := VarArrayCreate ([0, Stream.Size - 1], varByte); 
      p := VarArrayLock (v); 
      Stream.Position := 0; 
      Stream.Read (p^, Stream.Size); 
      VarArrayUnlock (v); 
    end;