转载:
TImage不能识别JEPG格式的图象数据,涉及jpg图片的操作(显示、存数据库等)要用TJPGImage类!  
 
下面是一个简单的例子(本例中,库表有两个字段,一个是字符型,另一个是OLE类型。):  
 
//打开、显示JPG图片,添加图象数据到数据库  
procedure  TForm1.Button3Click(Sender:  TObject);  
Var  
   JPGImage:TjpegImage;  
   Bitmap:TBitmap;  
   Stream    :  TMemoryStream;  
   FileName:String;  
   ExtName:  string;  
begin  
   JPGImage:=TJpegImage.Create;  
   //打开图象文件  
   if  OpenPictureDialog1.Execute  Then  
       begin  
           FileName:=OpenPictureDialog1.FileName;  
           ExtName:=AnsiUpperCase(ExtractFileExt(FileName));  //后缀名  
             
           //JPGImage加载图象。对两种类型的图象文件:.BMP和.JPG分别处理  
           if  ExtName='.BMP'  then  
               begin  
                   Bitmap:=TBitmap.Create;  
                   Bitmap.LoadFromFile(FileName);  
                   JPGImage.Assign(Bitmap);  
                   JPGImage.Compress;    //压缩成JPEG格式  
                   Bitmap.Free;  
               end;  
             
           if  ExtName='.JPG'  Then  
               JPGImage.LoadFromFile(FileName);  
 
           //JPG图象保存到数据库,要以MemoryStream为中介  
           Stream:=  TMemoryStream.Create  ;  
           JPGImage.SaveToStream(Stream);  
             
           table1.append;  
           table1FileName.asstring:=ExtractFileName(FileName);  
           table1Blob.LoadFromStream(Stream);  
           table1.Post;  
             
           Image1.Picture.Assign(JPGImage);  
           Stream.Free  ;  
       end;  
     
end;  
 
//显示图象  
procedure  TForm1.Table1AfterScroll(DataSet:  TDataSet);  
var  
   Stream    :  TStream;  
   JPGImage  :  TJpegImage;  
begin  
   JPGImage:=Tjpegimage.Create;  
   if  not  table1Blob.isNull  Then  
       begin  
           Stream:=TBlobStream.Create(Table1Blob,bmRead);  
           JPGImage.LoadFromStream(stream);  
           Image1.Picture.Assign(JPGImage);  
           Stream.Free;  
       end  
   else  
       Image1.Picture.Assign(Nil);  
   JPGImage.Free;  
 
end;  
 
请参考这一篇
http://www.csdn.net/expert/topic/960/960982.xml?temp=.64349