uses   jpeg;   
    
  var   
        tempStream:TMemoryStream;   
  begin   
      tempStream:=TMemoryStream.Create;   //   创建内存流   
      tempStream.clear;                                   //   初始化流   
          {   将表中的图片先存到流中   }   
          try   
              TBlobField(ADOQuery1.FieldByName('F_Photo')).SaveToStream(tempStream);   
              {   将流加载到控件中     }   
              DBImage1.Picture.Bitmap.LoadFromStream(tempStream);   
          finally   
              tempStream.Free;   
          end;             
  end;这个是人家的数据库转图片  我想问问 数据流转图片怎么搞  如果不行的话 直接数据流导出 ACCII HEX 也行 我就是不知道改用那个控件 该怎么写 

解决方案 »

  1.   

    数据流
    procedure   DrawJpegStream(AStrem:   TMemoryStream;   AImage:   TImage);   
        
      var   
        
      FJPEGImage:   TJPEGImage;   
        
      begin   
        
      FJPEGImage   :=   TJPEGImage.Create;   
        
      try   
        
      FJPEGImage.LoadFromStream(AStream);   
        
      AImage.Width   :=   FJPEGImage.Width;   
        
      AImage.Height   :=   FJPEGImage.Height;   
        
      AImage.Canvas.Draw(0,   0,   FJPEGImage);   
        
      finally   
        
      FJPEGImage.Free;   
        
      end;   
        
      end;   
      

  2.   

    程序出错  运行到
    FJPEGImage.LoadFromStream(AStream); 
    出现错误 
      

  3.   

    首先你要保证数据流是图片流
    procedure   SaveScrToStream(AStream:   TMemoryStream);   
      var   
          scrWidth,   scrHeight:   integer;   
          DC:   hDC;   
          FBitmap:   TBitmap;   
          FJPEGImage:   TJPEGImage;   
      begin   
          DC   :=   GetDC(0);   
          FBitmap   :=   TBitmap.Create;   
          FJPEGImage   :=   TJPEGImage.Create;   
          try   
              scrWidth   :=   Screen.Width;   
              scrHeight   :=   Screen.Height;   
              FBitmap.Width   :=   scrWidth;   
              FBitmap.Height   :=   scrHeight;   
              BitBlt(FBitmap.Canvas.Handle,   0,   0,   scrWidth,   scrHeight,   DC,   0,   0,   SRCCOPY);   
        
              FJPEGImage.Assign(FBitmap);   
              FJPEGImage.CompressionQuality   :=   10;   
              FJPEGImage.Compress;   
        
              AStream.Clear;   
              FJPEGImage.SaveToStream(AStream);   
              AStream.Position   :=   0;   
          finally   
              FBitmap.Free;   
              FJPEGImage.Free;   
              ReleaseDC(0,   DC);   
          end;   
      end;   
        
      //将内存流中的   JPEG   图像显示出来   
      procedure   DrawJpegStream(AStrem:   TMemoryStream;   AImage:   TImage);   
      var   
          FJPEGImage:   TJPEGImage;   
      begin   
          FJPEGImage   :=   TJPEGImage.Create;   
          try   
              FJPEGImage.LoadFromStream(AStream);   
              AImage.Width   :=   FJPEGImage.Width;   
              AImage.Height   :=   FJPEGImage.Height;   
              AImage.Canvas.Draw(0,   0,   FJPEGImage);   
          finally   
              FJPEGImage.Free;   
          end;   
      end;
      

  4.   

    是封包流 我能保证能显示的 我可以转存TXT 上