你写得有问题,看看以下的例子吧,相关的例子太多了,为何不全文搜索呢?
保存代码如下:
procedure SavePicture(img:TImage);
var
JPGImg: TJPEGImage;
ADOData: TADOBlobStream;
begin
JPGImg := TJPEGImage.Create;
ADOData :=
TADOBlobStream.Create(TBlobField(DataModule1.PatientInfoTable.FieldByName('图像1')), bmWrite);
try
JPGImg.Assign(img.Picture.Bitmap);
JpgImg.SaveToStream(ADOData);
finally
JPgImg.Free;
ADOData.Free;
end;
end;
读取代码如下:
procedure LoadPicture(img: TImage);
var
PicFieldName: string;
PicData: TADOBlobStream;
Pic: TJPEGImage;
begin
case img.Tag of
0: PicFieldName := '图像1';
1: PicFieldName := '图像2';
2: PicFieldName := '图像3';
3: PicFieldName := '图像4';
end;
if not DataModule1.PatientInfoTable.FieldByName(PicFieldName).isNUll then
begin
PicData :=
TADOBlobStream.Create(TBlobField(DataModule1.PatientInfoTable.FieldByName(PicFieldName)), bmRead);
//重点在下面
pic := TJPEGImage.Create;
try
pic.LoadFromStream(PicData);
img.Picture.Assign(pic);
finally
PicData.Free;
pic.Free;
end;
end
else
img.Picture.Assign (nil);
end;