存储和显示照片代码 ( 积分: 50 )

  • 主题发起人 主题发起人 kutiny
  • 开始时间 开始时间
K

kutiny

Unregistered / Unconfirmed
GUEST, unregistred user!
请教:怎么样保存和显示照片啊?
照片可以保存到数据库里(Access),也可以不保存进去.支持的格式尽可能多点.
如果保存到了数据库的话,是不是直接用DBImage就可以看到了呢?

在网上找了很多我都不会用.好象有些用ADOQuery的,能不能用Query呢?
 
DBImage 是可以直接看到,不能ADOQuery也可以,不过写程序的话,最好不要用数据感应控件。
 
image1.Picture.Assign(BlobFieldSaveToJpegImage(TBlobField(QueEmpPic.FieldByName('MP_Pic'))));

用ADOQuery
 
照片格式很多,在存储时,不能按每一种格式去存,
取的时候也比较麻烦,我是这样做的:
1、用TIMAGE来显示要存的照片;
2、将TImage.Picture转换成固定的一种格式,如:JPG;
3、用TBlobField.Assign将图片保存到数据库里。
TBlobField是针对于字段,与ADOQuery或是Query无关,都可以用的。
 
显示:image1.Picture.Assign(BlobFieldSaveToJpegImage(TBlobField(QueEmpPic.FieldByName('MP_Pic'))));

保存: TBlobField(qyEmpPIC.FieldByName('MP_Pic')).Assign(image1.Picture.Graphic);
 
TO:风清杨
[Error] Unit3.pas(172): Undeclared identifier: 'qyEmpPIC'
MP_Pic 是什么啊?
显示代码加在什么地方啊?fromshow?

TBlobField是组件还是什么?
要用到什么组件请大大们说明一下好吗?我苯.[:(]
谢谢~~~!!!
 
用流的方式保存图片到数据库
1、保存图片
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
Query1.Edit;
BlobField(Query1.FieldbyName('Image')).LoadFromStream(MS);
Query1.Post;
end;
finally
MyJPEG.Free;
end;
end;

2、查看图片
procedure TForm1.Button1Click(Sender: TObject);
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create('');
TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
 
TO: xiaxia421
[Error] Unit3.pas(176): Undeclared identifier: 'TJPEGImage'
不行哦,这是什么错误啊?
 
谢谢boy2002cn

还有两个错误:
[Warning] Unit1.pas(89): Variable 'MS' might not have been initialized
[Warning] Unit1.pas(90): Variable 'MyJPEG' might not have been initialized

另外:如果数据库里没有图片的话,点"显示"按钮会有错误,有没有什么办法改改?
图片能不能自动显示?一个一个的点有点麻烦..........

请各位大大们在帮帮忙,谢谢!!!
 
這兩個沒有初始化,你開始賦個值就可以了。不過這個對程式來說可以編譯得過去。
 
给你说个规则
XXX:=TXXX.create();//必须在try块外初始化,这样就不报warning 错误了
try
……
finally
XXX.free;
end;
 
学习中,请问,图片真的是存储到数据库中的吗?如果要把一个文本文档也存到数据库,读出时正常用对应的关联程序读出,可以吗??数据库村图片和音频视屏时是否都可以存储,是存储的路径还是整个完整的文件?
 
我看了下,图片是存到数据库中了~~~
 
如果图片是空似乎会出错
怎么样可以删除已经添加的图片呢?(其它数据不改)
 
update 表 set 字段=null where 那一条
 
多人接受答案了。
 
后退
顶部