在数据库中存储图片文件,如何实现?

1. 图像数据的选择及保存

procedure Tform1.selectimageClick(Sender: TObject); //选择图像
begin
if openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName );
end;
procedure Tform1.savetodbClick(Sender: TObject); //保存图像到数据库
var
ext:string;
begin
if image1.picture.Graphic <> nil then //避免image1中无图像保存出错
begin
adotable1.Edit ;
adotable1.FieldByName(myimage).Assign(image1.Picture.Graphic);
//以下记录保存到数据库的图像格式
ext:=extractfileext(openpicturedialog1.FileName ); //取出文件扩展名
if uppercase(ext) = .BMP THEN
adotable1.FieldByName(isbmp).VALUE := 1 //BMP型图像数据
ELSE IF (UPPERCASE(EXT) = .JPEG) OR (UPPERCASE(EXT) = .JPG) THEN
adotable1.FieldByName(isbmp).VALUE := 0; //JPEG型图像数据
ADOTABLE1.Post ;
end;
end;
2. 图像数据的读取及显示

procedure Tform1.ADOTable1AfterScroll(DataSet: TDataSet); //ADOTable1的AfterScroll事件方法程序
 var
  jpegimage:tjpegimage;
 begin
  image1.Picture.Graphic :=nil;
  //下边BMP、JPEG两种图像数据必需分别处理
  if adotable1.fieldbyname(isbmp).Asstring = 1 then //BMP型图像数据
   image1.Picture.bitmap.Assign(adotable1.fieldbyname(myimage))
   //上边语句中的bitmap不能为graphic,否则会出错
  else if adotable1.fieldbyname(isbmp).asstring = 0 then //JPEG型图像数据
   begin //begin2
    jpegimage := tjpegimage.Create ; //通过jpegimage将图像显示在image1,否则会出错
    try
     jpegimage.Assign(adotable1.fieldbyname(myimage));
     image1.Picture.Graphic :=jpegimage;
    finally
     jpegimage.Free ;
    end; //end try
  end; //end begin2
end;

  注:别忘了在单元文件接口部分的uses语句中添入JPEG单元引用。

  以上程序代码在DELPHI6.0+SQL(或ACCESS或PARADOX)数据库下运行通过。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值