把BMP,JPG圖片保存到數(shù)據(jù)庫(kù)中及從數(shù)據(jù)庫(kù)中取出來顯示在iamge上.
procedure TInputResultForm.SaveClick(Sender: TObject);
var
JPeg: TJPegImage;
Bmp: TBitmap;
ff: Tgraphicfield; //存放bmp的字段
mm: tmemorystream;
begin
try
Bmp := TBitmap.Create;
JPeg := TJPegimage.Create;
mm:=Tmemorystream.create;
DM.adoExeAttch.Edit;
if OpenDialog1.Execute then
if UpperCase(copy(Opendialog1.FileName,length(Opendialog1.FileName)-2,3))=‘BMP‘ then begin
Bmp.LoadFromFile(Opendialog1.FileName);
JPeg.Assign(Bmp);
JPeg.savetostream(mm);
TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).LoadFromStream(mm);
end else begin
JPeg.LoadFromFile(Opendialog1.FileName);
TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).loadfromfile(Opendialog1.FileName);
end;
Image1.Picture.Assign(jpeg);
finally
JPeg.Free;
mm.free;
Bmp.Free;
end;
end;
procedure TInputResultForm.LoadClick(Sender: TObject);
var
m:TMemoryStream;
jpg:TJpegImage;
begin
inherited;
m := TmemoryStream.Create;
if TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).BlobSize>0 then
try
(DM.adoExeAttchImage1 as TBlobField).SaveToStream(m);
jpg := TJpegImage.Create;
m.Position := 0;
jpg.LoadFromStream(m);
Image1.Picture.Assign(jpg);
jpg.Free;
except
showmessage(‘供應(yīng)商上傳的圖片格式不正確,無法瀏覽!‘)
end else
Image1.Picture.Assign(nil);
m.Free;
end;
或者:
直接存儲(chǔ)方式
Var meJpeg:TJpegImage ;
sType:String ;
begin
inherited;
If OpenPictureDialog1.Execute Then
Begin
sType:=ExtractFileExt(OpenPictureDialog1.FileName) ;
If (UpperCase(sType)=‘.JPEG‘) or (UpperCase(sType)=‘.JPG‘) Then
Begin
Try
meJpeg:=TJpegImage.Create ;
meJpeg.LoadFromFile(OpenPictureDialog1.FileName) ;
DBImage1.Picture.Graphic.Assign(meJpeg) ;
Finally
meJpeg.Free ;
End ; //Try
End
Else TBlobField(QInfoBase.FieldByName(‘fPicture‘)).LoadFromFile(OpenPictureDialog1.FileName) ;
End ; //If Type
end ; //If OpenDialog
使用流存儲(chǔ)方式
Var ms:TMemoryStream ;
mJpeg:TJpegImage ;
sType:String ;
begin
inherited;
If OpenPictureDialog1.Execute Then
Begin
sType:=ExtractFileExt(OpenPictureDialog1.FileName) ;
ms:=TMemoryStream.Create ;
mJpeg:=TJpegImage.Create ;
Try
ms.LoadFromFile(OpenPictureDialog1.FileName) ;
ms.Position:=0 ;
If (UpperCase(sType)=‘.JPEG‘) or (UpperCase(sType)=‘.JPG‘) Then
Begin
mJpeg.LoadFromStream(ms) ;
DBImage1.Picture.Bitmap.Assign(mJpeg) ;
End
Else
TBlobField(QInfoBase.FieldByName(‘fPicture‘)).LoadFromStream(ms) ;
Finally
ms.Free ;
mJpeg.Free ;
End ;
end ; //If OpenDialog
End ;