access中保存jpg图像出错 (100分)

  • 主题发起人 主题发起人 fly555
  • 开始时间 开始时间
F

fly555

Unregistered / Unconfirmed
GUEST, unregistred user!
TBlobField(dm.ADOQuery1.FieldByName('photo')).LoadFromStream(MS);//
时提示出错:bitmap image is not valid.
为什么?
 
用stream,网上搜索一下,有文章地
 
你写得有问题,看看以下的例子吧,相关的例子太多了,为何不全文搜索呢?
保存代码如下:
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;
 
一个利用TBlobStream在数据库中保存BMP和JPG图片的例子
http://www.aidelphi.com/6to23/Docu/BlobStream.zip
 
qince:你的保存不了图像呀。
 
ADOTable1DSDesigner1.LoadFromFile(self.OpenPictureDialog1.FileName);
这样就行了,我做的就是,关于存储照片的
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部