clob存取delphi:Delphi图像存取另类解决方案

Delphi存取图像完整解决方案文中笔者提供了种DELPHI存取JPEG、BMP图像到数据库解决方案虽然它适用于ACCESS和SQL数据库但它并不适用于所有数据库(比如PARADOX数据库中GRAPHIC图像字段就不能采用该思路方法存取图像数据)下文将介绍DELPHI利用ASSIGN思路方法存取JPEG、BMP图像到数据库解决方案来进行补充完善演示数据库结构和窗口界面设计同前文不再重述将单元相应代码作如下更换:

  1. 图像数据选择及保存

procedure Tform1.selectimageClick(Sender: TObject); //选择图像
begin
openpicturedialog1.Execute then
image1.Picture.LoadFromFile(openpicturedialog1.FileName );
end;
procedure Tform1.savetodbClick(Sender: TObject); //保存图像到数据库
var
ext:;
begin
image1.picture.Graphic <> nil then //避免image1中无图像保存出错
begin
adotable1.Edit ;
adotable1.FieldByName('myimage').Assign(image1.Picture.Graphic);
//以下记录保存到数据库图像格式
ext:=extractfileext(openpicturedialog1.FileName ); //取出文件扩展名
upper(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); //ADOTable1AfterScroll事件思路方法
 var
  jpegimage:tjpegimage;
 begin
  image1.Picture.Graphic :=nil;
  //下边BMP、JPEG两种图像数据必需分别处理
   adotable1.fieldbyname('isbmp').As = '1' then //BMP型图像数据
   image1.Picture.bitmap.Assign(adotable1.fieldbyname('myimage'))
   //上边语句中bitmap不能为graphic,否则会出错
   adotable1.fieldbyname('isbmp').as = '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)数据库下运行通过
Tags:  delphi图像压缩 delphi图像处理 delphi中编辑图像 clob存取delphi

延伸阅读

最新评论

发表评论