最好能给出完整的代码
解决方案 »
- [向supertitan001提问] ~给泰坦哥散分~泰坦哥系好淫~
- delphi发送post请求(JSP转Delphi代码)
- 在用windowsmiedplay作控件,二次开发卡拉KO软件的问题,跪求!!
- 关于bde以及VCL的多线程问题!!!
- 如何获取汉字的拼音代码?????????????????????????????急急急急.........
- 北京通审公司招聘delphi程序员
- 高分求怎样用table1的记录来动态建立mainMenu中n50下的子菜单呢?(UP有分)
- WEB开发大讨论,来者有'分'!
- 小弟菜鸟,二十分,谢谢!
- 四个小问题。(ngyxh)
- 怎样将TMemoryStream中的内容放到一个StringList中
- 请高手指点,请问:怎么调用windowsAPI创一个位图,然后在这个位图中画图.
myfilestream:tfilestream;
myblob:tblobfield;
picturepath:string;
begin
picturepath:='c:\a.bmp';
adoquery1.append;
myfilestream:=tfilestream.Create(picturepath,fmopenread);
myblob:=tblobfield(adoquery1.FieldByName('Photo'));
myblob.LoadFromStream(myfilestream);
myfilestream.Free;
end;
adoquery1.Post;
procedure TEntryPersonInfor.ViewImage;
Var
Jpg :TJpegImage ;
Path :String ;
begin
GetDir(0,Path) ;
Image1.Picture :=Nil ;
Image1.Repaint;
TempJpg :=Path+ '\TempJpg.Jpg' ;
Jpg :=TJpegImage.Create ;
TBlobField(adsMaster.FieldByName('Photo')).savetoFile(TempJpg) ;
Jpg.LoadFromFile(TempJpg);
Image1.Picture.Assign(Jpg);
Jpg.Free ;
end;
begin
try
// OpenPictureDialog1.Filter := 'BMP files (*.bmp)|*.BMP|JPG files (*.jpg,*.jpeg)|*.JPG';
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
except
showmessage('图片调入错误!');
abort;
end;
end;//保存
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
IF Image1.Picture.Graphic<>NIL THEN
with MyJPEG do
begin
Assign(Image1.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
ADOTable1.Open;
ADOTable1.Append;
ADOTable1.FieldbyName('p_no').asstring:=edit1.Text;
ADOTable1.FieldbyName('p_na').asstring:=edit2.Text;
TBlobField(ADOTable1.FieldbyName('photos')).LoadFromStream(MS);
ADOTable1.Post;
// messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
edit1.Text:='';
edit2.Text:='';
Image1.Picture:=nil;
end;
end;//显示
procedure TForm1.Button3Click(Sender: TObject);
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
ADOQuery1.Open;
tempstream:=TStringStream.Create(' ');
TBlobField(ADOQuery1.FieldByName('photos')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
Image1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
保存 :
var Ms:TmemoryStream;
begin
ms:=TmemoryStream.Create;
Jpg.Assign(Image1.Picture.Graphic);
Jpg.SaveToStream(Ms) ;
Ms.Position :=0;
ADOquery1.append;
TBlobField(ADOquery1.FieldByName('img')).LoadFromStream(Ms);
ADOquery1.Post;
Ms.Free ;
end;
读取到image中:
Var
Ms:TStringStream;
begin
Ms:=TstringStream.Create('');
TBlobField(ADOquery1.FieldByName('img')).SaveToStream(Ms);
Ms.Position :=0;
Jpg.LoadFromStream(Ms);
Image2.Picture.Assign(Jpg);
Ms.Free;
end;
上面的网友都说的很好,但以我的经验,奉劝你别图片信息直接存入数据库。
上面的网友都说的很好,但以我的经验,奉劝你别图片信息直接存入数据库。
我公司有个考勤系统,是基于MS-SQL Server 7.0,有个公司买我们的用,他们有300多个员工,我们的程序在“员工资料”功能中直接把图片信息保存到数据库中,结果,每次运行那程序时,至少要2-3分钟才能显示成功加载窗体。
我们的图片格式为BMP,其实图片也不大,每张约30K左右,但实际运用时就有上面的问题,而且,有时还显示连接超时。呵,把连接时间加长也解决不了要花很长时间才能加载的问题。
我没写程序,但说了经验,你也要送分给我吧? ^_^