数据库存好照片的问题.

才子鸣 2003-12-03 01:16:11
用数据库怎样存放一张照片???
...全文
27 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
angelface 2003-12-13
  • 打赏
  • 举报
回复
呵呵, 学习学习~~~
goldpony 2003-12-13
  • 打赏
  • 举报
回复
这是一段CB的代码,你可以自己改变一下:

//往数据库中存放图片
bool SetImgField(TDataSet * tds,TField * tfd,TPicture *pPicture)
{
TJPEGImage *jp = new TJPEGImage();
bool flag = true;
jp->Assign(pPicture->Bitmap);
TStream *pstream;
pstream = tds->CreateBlobStream(tfd, bmReadWrite);
try
{
jp->Compress();
jp->SaveToStream(pstream);
//flag = true;
}
__finally
{
delete pstream;
//flag = false;
}
delete jp;
return flag;
}
//---------------------------------------------------------------------------
//从数据库中读出图片
bool GetImgField(TPicture *pPicture, TDataSet * tds, TField * tfd)
{
TStream *pstream;
pstream = tds->CreateBlobStream( tfd, bmRead);
if( pstream->Size == 0) return false;
TJPEGImage *jp = new TJPEGImage();
try
{
jp->LoadFromStream(pstream);
}
__finally
{
delete pstream;
}
pPicture->Bitmap->Assign( jp ) ;
delete jp;
return true;
}
nyf1220 2003-12-13
  • 打赏
  • 举报
回复
呵呵,不错
星星就是厉害
WGYKING 2003-12-13
  • 打赏
  • 举报
回复
...
txmjs 2003-12-13
  • 打赏
  • 举报
回复
学习...
才子鸣 2003-12-13
  • 打赏
  • 举报
回复
谢谢这位任兄
webwolfa 2003-12-09
  • 打赏
  • 举报
回复
同意楼上的。
hongqi162 2003-12-03
  • 打赏
  • 举报
回复
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
openpicturedialog1.Execute;
if openpicturedialog1.FileName<>'' then
begin
image.Picture.LoadFromFile(openpicturedialog1.FileName);
openpicturedialog1.FileName:='';
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
adotable1.Append;
TBlobField(adotable1.FieldbyName('photo')).LoadFromStream(MS);
adotable1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
image.Picture.CleanupInstance;
end;
finally
MyJPEG.Free;
end;
end;


显示图片
var
tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create(' ');
TBlobField(adodataset1.FieldByName('photo')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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