delphi 存取图片的时候 怎么才能.JPEG,.BMP格式都能存进去 和取出来 怎么做 

解决方案 »

  1.   

    向数据库里存取,还是用TIMAGE?
      

  2.   

    DELPHI存取JPEG、BMP图像到数据库的解决方案,虽然它适用于ACCESS和SQL数据库,但它并不适用于所有数据库(比如PARADOX数据库中的GRAPHIC图像字段就不能采用该方法存取图像数据),下文将介绍DELPHI利用ASSIGN方法存取JPEG、BMP图像到数据库的另一解决方案来进行补充完善。演示数据库结构和窗口界面设计同前文,不再重述,将单元的相应程序代码作如下更换:  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)数据库下运行通过。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjq2003/archive/2005/06/30/408258.aspx
      

  3.   


    delphi中Bmp转Jpeg JPG转BMP 收藏 
    ;----Bmp转Jpeg-----uses Jpeg;
    procedure TForm1.Button1Click(Sender: TObject);
    Var
    Jpg : TJpegImage;
    BMP : TBitMap ;
    begin
    Jpg :=TJpegImage.Create;
    BMP :=TBitmap.Create;
    BMP.LoadFromFile('H:\Avi_图_Wav\跳.bmp');
    Jpg.Assign(BMP);
    Jpg.SaveToFile('H:\Avi_图_Wav\跳.Jpg' );
    BMP.Free ;
    Jpg.Free;
    end;//---------------JPG转BMP-----------------
     procedure TForm1.Button1Click(Sender: TObject);
     var
       MyJPEG : TJPEGImage;
       MyBMP : TBitmap;
     begin
       MyJPEG := TJPEGImage.Create;
       with MyJPEG do begin
         LoadFromFile('UwJpegHier.JPEG');
         MyBMP := TBitmap.Create;
         with MyBMP do begin
           Width := MyJPEG.Width;
           Height := MyJPEG.Height;
           Canvas.Draw(0,0,MyJPEG);
           SaveToFile('UwBmpHier.BMP');
           Free;
         end;
         Free;
       end;
     end;
    ===========================================================
    //JPEG and bitmaps 
    var
      MyJpeg: TJpegImage;
      Image1: TImage;
    begin
      Image1:= TImage.Create;
      MyJpeg:= TJpegImage.Create;
      Image1.LoadFromFile('TestImage.BMP');  // Load the Bitmap from a file
      MyJpeg.Assign(Image1.Picture.Bitmap);  // Assign the BitMap to MyJpeg
    object
      MyJpeg.SaveToFile('MyJPEGImage.JPG'); // Save the JPEG to Disk
    end;
    ----------------------------------------
     jpg 转换成 bmp 
    ...convert jpg to bmp ? Var  
      jpeg: TJPEGImage;  
      bmp: TBitmap;  
    Begin  
      jpeg:= TJPEGImage.Create;  
      try  
        jpeg.LoadFromFile( filename );  
        bmp:= TBitmap.Create;  
        try  
          bmp.Assign( jpeg );  
          bmp.SaveTofile( ChangeFileExt( filename, '.BMP' ));  
        finally  
          bmp.free  
        end;  
      finally  
        jpeg.free  
      end;  
    end; 
    -------------------------------------------
    procedure TForm1.Button1Click(Sender: TObject);
    var
      bmp : TBitmap;
      jpg : TJpegImage;
    begin
      bmp := TBitmap.Create;
      jpg := TJpegImage.Create;
      jpg.LoadFromFile ( 'G:\VCL\Menu_Directory\彩色面版\RIVER.JPG ' );
       bmp.Assign( Jpg);
       bmp.SaveToFile ( 'G:\VCL\Menu_Directory\彩色面版\RIVER.bmp' );
      jpg.Free;
      bmp.Free;
    end; 
    ---------------------------------
    convert jpg to bmp ? 
    Var jpeg: TJPEGImage; 
      bmp: TBitmap; 
    Begin 
      jpeg:= TJPEGImage.Create; 
      try jpeg.LoadFromFile( filename ); 
        bmp:= TBitmap.Create; 
        try bmp.Assign( jpeg ); 
          bmp.SaveTofile( ChangeFileExt( filename, '.BMP' )); 
        finally 
          bmp.free 
        end; finally 
         jpeg.free 
      end; 
    end;本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xjq2003/archive/2007/07/21/1701093.aspx
      

  4.   

    楼上的 我是按照你说的写的 它报了这个错 adotable1:cannot perform this operation on a closed  dataset 什么意思啊 解释下 还有怎么解决