怎么样快速识别一图片是jpg还是bmp
我现在是用一个TBitmap 和 TJpegImage 在load 哪个成功就是哪个
这样速度会不会慢?有没有更直接方法判断是什么图片

解决方案 »

  1.   

    直接用个Image控件,记住uses Jpeg单元!
    然后Image1.Picture.LoadFromFile('路径');
    我就是这么做的,bmp和jpg图都可以显示出来.
      

  2.   

    用Image 我也这么用了
      

  3.   

    说TImage,不如说通过TPicture,TImage只是显示控件。这里只是通过后缀来确定,通过注册相应的Graphic Class,会全局保存该Class和后缀的关联。如TJPEGImage和.jpg/.jpeg
      

  4.   

    文件名后缀改了,怎么办。图象数据格式文件数据开头,就是不知道怎么用,我现在批量处理一批图片
    jpg的,只能转成bmp处理完后,再转回jpg
    现在的做法是,先转bmp,不管你是jpg还是bmp的,是bmp的用try,把异常包了。如果要是直接对文件分析知道是什么类型就好了
      

  5.   

    把jpg文件读到流里面
    如果他是以FFD8开头的就说明是jpeg的图象了。
    否则就是其他的文件。
    Jpeg的文件都是以FFD8开头,以FFD9来结尾的。 ehom(?!) 
    我不在等着看你的示范代码嘛,呵呵
    ExtractFileExt
    晚点结贴
      

  6.   

    Stream.ReadBuffer(Buffer, 2);if Buffer = $4D42 then
    begin
      //BMP
    end
    else if Buffer = $D8FF then
    begin
      //JPEG
    end
    else if Buffer = $4947 then
    begin
      //GIF
    end
    else if Buffer = $050A then
    begin
      //PCX
    end
    else if Buffer = $5089 then
    begin
      //PNG
    end
    else if Buffer = $4238 then
    begin
      //PSD
    end
    else if Buffer = $A659 then
    begin
      //RAS
    end
    else if Buffer = $DA01 then
    begin
      //SGI
    end
    else if Buffer = $4949 then
    begin
      //TIFF
    end
    else
    begin
      //...
    end;