一幅图片

sophiachen 2003-02-14 08:28:05
大家情人节快乐!
我想请教一下一幅图片,我怎样把它存入数据库中,又怎样把它在需要时显示出来,sql server数据库中的数据字段怎样设置类型呢?谢谢!
...全文
25 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
8025 2003-02-15
  • 打赏
  • 举报
回复
你可以去大富翁的bbs上看,都有详细的介绍
Billy_Chen28 2003-02-14
  • 打赏
  • 举报
回复
//调入图片

procedure TForm1.Button2Click(Sender: TObject);
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;
Billy_Chen28 2003-02-14
  • 打赏
  • 举报
回复
存取jpg代码如下:
procedure TForm1.btnLoadImageClick(Sender: TObject);
var
sFileName : string;

function BlobContentToString(const AFileName : string) : string;
begin
with TFileStream.Create(AFileName, fmOpenRead) do
try
SetLength(Result, Size);
Read(Pointer(Result)^, Size);
finally
Free;
end;
end;

begin
if OpenDialog1.Execute then
begin
sFileName := OpenDialog1.FileName;
with ADOTable1 do
begin
Open;
Insert;
FieldByName('Name').AsString := Edit1.Text;
FieldByName('Photo').AsString := BlobContentToString(sFileName);
Post;
end;
end;
end;

procedure TForm1.btnShowClick(Sender: TObject);
var
BS : TADOBlobStream;
JpegImage : TJpegImage;
sFileName : string;
begin
JpegImage := TJpegImage.Create;
BS := TADOBlobStream.Create(TBlobField(ADOTable1.FieldByName('Photo')), bmRead);
try
JpegImage.LoadFromStream(BS);
Image1.Picture.Assign(JpegImage);
sFileName := ExtractFilePath(Application.ExeName) + 'tmpBlob';
sFileName := sFileName + '.jpg';
BS.SaveToFile(sFileName);
//OleContainer1.CreateObjectFromFile(sFileName, False);
//Image1 := TImage.Create(Self);
//Image1.Picture.Graphic.LoadFromStream(BS);
finally
JpegImage.Free;
BS.Free;
end;
end;
「已注销」 2003-02-14
  • 打赏
  • 举报
回复
写入字段
(adoquery1.fieldbyname('f1') as tblobfield).loadfromstream(stream);
读取。
(adoquery1.fieldbyname('f1') as tblobfield).savetostream(stream);

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧