下面是我写的简单保存图片代码  不知道如何修改才能变成可以根据 image1 里面的图片的格式是 bmp还是jpg而 保存的时候自动
添加.bmp 或者.jpg后缀!     是根据原图的格式决定的  请高手指教谢谢!!
procedure TForm1.Save1Click(Sender: TObject);
begin
  if SavePictureDialog1.Execute then
  begin
    Image1.Picture.SaveToFile(SavePictureDialog1.FileName);
  end;
end;

解决方案 »

  1.   

    只能自己做判断
    而且 TPicture不支持jpg的
      

  2.   

    只能自己做判断
    而且 TPicture不支持jpg的
      

  3.   

    JPEG File Header:http://www.fastgraph.com/help/jpeg_header_format.html
    BMP Header:http://www.fastgraph.com/help/bmp_header_format.html
    用文件流读几个字节就能判断了
      

  4.   

    谁说TPicture不支持jpg?在工程里的文件引用下JPEG单元就可以了
      

  5.   

    那么请问  stherix  如何改我的代码变为 支持 jpg的呢??我开始已经 uses  JPEG   了~~
    这里也谢谢 budded  对于我来说可能还是难了点  呵呵 谢谢
      

  6.   

    SavePictureDialog1后面规定格式....只限.Bmp格式
      

  7.   

    SavePictureDialog1后面规定格式....只限.Bmp格式
    这是什么意思????
      

  8.   

    Picture.LoadFromFile()
    你打开jpg试试jpg都要靠assign操作来赋给picture.GraphicPicture是不能SaveToFile 保存为真正的jpg格式的
    需要用TJPEGImage做中间转换
      

  9.   

    procedure   TCP.BitBtn1Click(Sender:   TObject); 
    var                                                                     //2007-11-29晚,处理下载图片并打印的效果 
        Mstream:   TMemorystream; 
        jpgfile:   TjpegImage; 
        pp:   pChar; 
        ss:       String; 
        ii:DWORD; 
        aa:   string; 
        ll   :   string; 
    Begin 
        GetMem(pp,255);               //处理获得用户登陆电脑名称 
        ii:=       255; 
        GetUserName(pp,ii); 
        ss       :=       StrPas(pp); 
        FreeMem(pp); 
        ll:=   'C:\Documents   and   Settings\'+ss+   '\Local   Settings\Temp\'; 
      if   (Edit1.Text   <> ''   )   or   (edit1.Text <> '000001')     then                                                     //2007-11-29晚加,处理打印图片和下载图片问题   , 
              Begin 
                      With   ADOQuery1   do       //处理图片 
                            Begin 
                                    Close; 
                                    SQl.Clear   ; 
                                    SQl.Text   :='   Select   (n.image_)   as   image_,   isnull(n.zkuan_,'''')as   zkuan   ,   (m.ytu_)   as   ytu_,(m.zkuan_)   as     zkuan_   ' 
                                                                                        +'     from   klbom   m   left     join   filetupian   n   on   m.zkuan_=n.zkuan_     and     m.ytu_=n.ytu_   ' 
                                                                                        +'     where   m.id_='''+Trim(Edit1.Text)+'''   '   ; 
                                    Open; 
                            End; 
                      try 
                          While   not   ADOQuery1.Eof   do 
                                  Begin     //在这里需要判断是否查询到图片的字段,所以特殊添加下面的判断 
                                        if   Adoquery1.FieldByName('zkuan').AsString   <> ''   then 
                                            Begin 
                                                  Mstream:=TMemorystream.Create   ; 
                                                  jpgfile:=TjpegImage.Create   ; 
                                                  TBlobField(ADOQuery1.FieldByName('image_')).SaveToStream(Mstream); 
                                                  Mstream.Position   :=0; 
                                                  jpgfile.LoadFromStream(Mstream); 
                                                  aa:='C:\Documents   and   Settings\'+ss+   '\Local   Settings\Temp\'+ADOQuery1.fieldbyname('zkuan_').AsString+ADOQuery1.fieldbyname('ytu_').AsString+'.jpg'; 
                                                  jpgfile.SaveToFile(aa); 
                                            End; 
                                        Adoquery1.Next; 
                                  End;                   except 
                          Showmessage('数据处理有问题,请联系信息部'); 
                      End; 
      
      

  10.   

    WANGXUELLD  你写的不明白 好像跟我问得不一回事~
      

  11.   

    下面是我写的简单保存图片代码     不知道如何修改才能变成可以根据   image1   里面的图片的格式是   bmp还是jpg而   保存的时候自动 
    添加.bmp   或者.jpg后缀!           是根据原图的格式决定的     请高手指教谢谢!! 
    procedure   TForm1.Save1Click(Sender:   TObject); 
    begin 
        if   SavePictureDialog1.Execute   then 
        begin 
            Image1.Picture.SaveToFile(SavePictureDialog1.FileName); 
        end; 
    end;
    ----
    没有细看,,,不知道这个两个有什么区别吗?不就不理解了,BMP,JPG任何只要在后缀那里修改为.BMP或.JPG就可以相互转化了,,,