我有一张表有个image字段用来放图片
格式是 jpg 或者 bmp
但是并没有 其他字段 标志image字段里面存放的图片格式是jpg 还是 bmp现在我在程序中用,怎么判断image字段中放的是jpg 还是 bmp格式的图片??或者我把字段内容读到流中,怎么能从流中判断它的格式么??要是可以 怎么判断???delphi中的image控件能从流中显示图片么???要是可以 怎么显示??急  急  急大虾 救救 小弟我呀!!! 谢谢

解决方案 »

  1.   

    procedure     TForm1.Button3Click(Sender:     TObject);       
      Var       
            JPGImage:TjpegImage;       
            Bitmap:TBitmap;       
            Stream         :     TMemoryStream;       
            FileName:String;       
            ExtName:     string;       
      begin       
            JPGImage:=TJpegImage.Create;       
            //打开图象文件       
            if     OpenPictureDialog1.Execute     Then       
                    begin       
                            FileName:=OpenPictureDialog1.FileName;       
                            ExtName:=AnsiUpperCase(ExtractFileExt(FileName));     //后缀名       
                                  
                            //JPGImage加载图象。对两种类型的图象文件:.BMP和.JPG分别处理       
                            if     ExtName='.BMP'     then       
                                    begin       
                                            Bitmap:=TBitmap.Create;       
                                            Bitmap.LoadFromFile(FileName);       
                                            JPGImage.Assign(Bitmap);       
                                            JPGImage.Compress;         //压缩成JPEG格式       
                                            Bitmap.Free;       
                                    end;       
                                  
                            if     ExtName='.JPG'     Then       
                                    JPGImage.LoadFromFile(FileName);       
          
                            //JPG图象保存到数据库,要以MemoryStream为中介       
                            Stream:=     TMemoryStream.Create     ;       
                            JPGImage.SaveToStream(Stream);       
                                  
                            table1.append;       
                            table1FileName.asstring:=ExtractFileName(FileName);       
                            table1Blob.LoadFromStream(Stream);       
                            table1.Post;       
                                  
                            Image1.Picture.Assign(JPGImage);       
                            Stream.Free     ;       
                    end;       
                  
      end;
      

  2.   

    楼上说的 是 保存的时候, 如果是bmp格式的就转化成jpg后再保存到数据库中我想问的是,表中已经存在bmp和jpg 两种格式的取出来的时候,怎么判断 它的格式呀。因为image1.picture.assign(adoquery1.fieldbyname('mypic')) 显示的时候 如果是jpg的就出现异常实在不能事先判断 我就用try
    如果出错 就说明是jpg格式的
      

  3.   

    只能用你说的try
    再查查资料吧