zoukankan      html  css  js  c++  java
  • delphi编程如何判断图片文件的真实类型?

    本文主要讲解了如何判断一个图片文件的真实类型,并不是从后缀名来判断类型的方法:
    
    以下是引用片段:
    
    unit Unit55;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TImageType = (IT_None, IT_Error, IT_Bmp, IT_JPEG, IT_GIF, IT_PCX, IT_PNG,
        IT_PSD, IT_RAS, IT_SGI, IT_TIFF);
    
      TForm55 = class(TForm)
        OpenDialog1: TOpenDialog;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form55: TForm55;
    
    implementation
    
    {$R *.dfm}
    
    function CheckImageType(FileName: string): TImageType;
    var
      MyImage: TMemoryStream;
      Buffer: Word;
    begin
      MyImage := TMemoryStream.Create;
      try
        MyImage.LoadFromFile(FileName);
        MyImage.Position := 0;
        if MyImage.Size = 0 then // 如果文件大小等于0,那么错误(
        begin
          Result := IT_Error;
          Exit;
        end;
        MyImage.ReadBuffer(Buffer, 2); //读取文件的前2个字节,放到Buffer里面
    
        case Buffer of
          $4D42:
            Result := IT_Bmp;
          $D8FF:
            Result := IT_JPEG;
          $4947:
            Result := IT_GIF;
          $050A:
            Result := IT_PCX;
          $5089:
            Result := IT_PNG;
          $4238:
            Result := IT_PSD;
          $A659:
            Result := IT_RAS;
          $DA01:
            Result := IT_SGI;
          $4949:
            Result := IT_TIFF;
        else
          Result := IT_None;
        end;
      finally
        MyImage.Free;
      end;
    end;
    
    procedure TForm55.Button1Click(Sender: TObject);
    begin
      if not OpenDialog1.Execute then
        Exit;
      if CheckImageType(OpenDialog1.FileName)<>IT_Bmp then
        showmessage('不是BMP格式');
    
    end;
    
    end.
    
    
  • 相关阅读:
    Vue源码学习之双向绑定
    Vue源码学习之数据初始化
    JavaScript跨域资源请求(CORS)解决方案
    Vue学习笔记
    MongoDB学习笔记
    实现一个类似bootstrap的多级下拉菜单
    bootstrap栅格系统的实现
    滑动效果的标签页切换
    一个简单的类似Vue的双向绑定
    元素垂直居中的常见方法
  • 原文地址:https://www.cnblogs.com/beeone/p/1792825.html
Copyright © 2011-2022 走看看