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.

相关阅读 >>

Delphi console 清屏代码

Delphi 调节音量代码

Delphi中实现全角转半角

Delphi 非常简单的字符串加密解密函数,支持中文

Delphi dbgrids 组件内实现查询

Delphi输入字符与tlistbox项目匹配

Delphi判断ie是否使用代理

Delphi 读写文本文件

Delphi获取dos命令行输出函数 运行cmd命令并获取结果

Delphi - 如何执行windows、osx、linux的外部程序?

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...