image从数据库中获取图片方法

procedure   TForm1 . GetPicture(pos: string ;TempQuery:   TADOQuery);
var
   MS_JpegStream:TMemoryStream;
begin
   try
     MS_JpegStream:=TMemoryStream . Create;
     with   tempQuery   do
     begin
       close;
       sql . clear;
       sql . Add( 'select  tp   from   tp' );
       Open;
     end ;
     if    tempquery . FieldByName( 'tp' ).isnull    then
     begin
       image1 . Picture . Graphic:= nil ;
     end
     else
     begin
       (tempQuery . FieldByName( 'tp' )    as    tblobfield).savetostream(MS_JpegStream);
       image1 . Picture . Graphic:= nil ;
       image1 . Picture . Graphic:=TJpegImage . Create;
       MS_JpegStream . Position:= 0 ;
       image1 . Picture . Graphic . LoadFromStream(MS_JpegStream);
     end ;
   finally
     MS_JpegStream . Free;
   end ;
end ;
 
procedure   TForm1 . SetPicture(id: string ;TempQuery:TADOQuery);
var
   MS_JpegStream:TMemoryStream;
   M_BitMap:TBitMap;
   M_Jpeg:TJpegImage;
begin
   OpenDialog1 . Execute;
   try
     MS_JpegStream:=TMemoryStream . Create;
     M_BitMap:=TBitMap . Create;
     M_Jpeg:=TJpegImage . Create;
     if   ExtractFileExt(OpenDialog1 . FileName)= '.bmp'    then
     begin
       M_BitMap . LoadFromFile(OpenDialog1 . FileName);
       M_Jpeg . Compress;
       M_Jpeg . Assign(M_BitMap);
     end
     else  if  extractfileext(OpenDialog1 . FileName)= '.jpg'    then
     begin
       M_Jpeg . LoadFromFile(OpenDialog1 . FileName);
     end ;
     M_Jpeg . SaveToStream(MS_JpegStream);
     with  tempQuery  do
     begin
       close;
       sql . clear;
       sql . Add( 'insert into tp (id,tp) values (' '1' ',:image)' );
       Parameters . ParamByName( 'image' ).LoadFromStream(MS_JpegStream,ftblob);
       ExecSQL;
     end ;
   finally
     MS_JpegStream . Free;
     M_BitMap . Free;
     M_Jpeg . Free;
   end ;
end ;

你可能感兴趣的:(DELPHI开发)