还是JPG(100分)

  • 主题发起人 主题发起人 JamesDF
  • 开始时间 开始时间
J

JamesDF

Unregistered / Unconfirmed
GUEST, unregistred user!
保存到数据库中
procedure TForm1.Button1Click(Sender: TObject);
var
Pic:TMemoryStream;
begin
if OpenDialog1.Execute then
begin
Pic := TMemoryStream.Create ;
pic.LoadFromFile(Opendialog1.FileName );
pic.Position := 0;
Image1.Picture.LoadFromFile(Opendialog1.FileName);
ADOQuery1.Insert ;
ADOQuery1Pic.LoadFromStream(pic);
ADOQuery1.Post ;
end;
end;
//好像没有问题

把保存到数据库的Jpg图显示出来,代码如下
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
var
Dpic:TmemoryStream;
begin
Dpic := Tmemorystream.create;
ADOQuery1Pic.SaveToStream(DPic);
DPic.Position := 0;
Image1.Picture.Bitmap.LoadFromStream (dpic);
end;

出错提示:bitmap Image is not valid
 
image不行的,换个控件吧,有不少的,在网上找找吧,在202.117.210.31有下的.
 
小兄弟,你那样不行,显示JPG要这样
var
...
jpeg : TJPEGImage;
begin
jpeg := TJPEGImage.Create ;
...
TBlobField(t1.FieldByName('image')).SaveToStream(mstream1) ;
mstream1.Position := 0;
jpeg.LoadFromStream(mstream1);
imageBase.Picture.Assign(jpeg);
...
end;
 
TBitmap和TJPEGImage属于不同的类
所以要用Assign函数导入!
 
//打开图片
procedure TForm1.Button1Click(Sender: TObject);
begin
try
if opendialog1.Execute then
begin
edit1.Text:=opendialog1.FileName;
image1.Picture.LoadFromFile(opendialog1.FileName);
end;
except
showmessage('图片类型不正确!');
end;
end;

//存储图片

procedure TForm1.Button2Click(Sender: TObject);
begin
if fileexists(edit1.Text) and (edit2.text<>'') then
begin

ADOQuery1.Active:=true;
ADOQuery1.Insert;
ADOQuery1.FieldByName('name').AsString:=edit2.Text;
TBlobField(ADOQuery1.FieldByName('pic')).loadfromfile(edit1.Text);
ADOQuery1.Post;
end;
end;

//读取图片
procedure TForm1.Button3Click(Sender: TObject);
var
m:TMemoryStream;
jpg:TJpegImage;
begin
m := TmemoryStream.Create;
ADOquery1.Active:=true;
try
(form1.ADOquery1pic as TBlobField).SaveToStream(m);
jpg := TJpegImage.Create;
m.Position := 0;
jpg.LoadFromStream(m);
// m.Position := 0;
m.Free;
Image1.Picture.Assign(jpg);
jpg.Free;
except
showmessage('供应商上传的图片格式不正确,无法浏览!')
end;


end;
 
多人接受答案了。
 
后退
顶部