Delphi从内存流中判断图片格式参照.pdfVIP

  • 5
  • 0
  • 约2.4千字
  • 约 3页
  • 2021-12-10 发布于福建
  • 举报
Delphi 从内存流中判断图片格式 _ 街头巷尾 2009-03-19 11:22:55| 分类: 个人日记 | 标签: |字号大中小 订阅 Delphi 从内存流中判断图片格式 利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件,例如 jpg 文件 是 FFD8 ( 从低位到高位就要反过来 D8FF 下面都是一样 ) BMP 文件 是 424D 4D42 其他的我就不一一列举了 ,想知道跟多文件类型分别是用什么字符作为文件的开头的话 ,下载个 C32asm 或者 UE 等这类 16 进制编辑器就 可以看到了。 procedure TForm1.Button1Click(Sender: TObject); //Button1 的单击事件 var //声明变量 MyImage:TMemoryStream; // 内存流对象 Buffer:Word; i:integer; begin if OpenDialog1.E xecute then //OpenDialog1 是一个文件打开对话框,在 Delphi 组件面版的 Dialog 页中可以找到。 begin MyImage:=TMemoryStream.Create; // 建立内存流对象 try MyImage.LoadFromFile(OpenDialog1.FileName); // 把刚刚用户选择的文件载入到内存流中 MyImage.P osition := 0; //移动指针到最开头的位置 if MyImage.Size = 0 then // 如果文件大小等于 0 ,那么 begin // 错误 Show Message( 错误 ) ; E xit; end; MyImage.ReadBuffer(Buffer,2); // 读取文件的前2个字节,放到 Buffer 里面 if Buffer=$4D42 then // 如果前两个字节是以 4D42[ 低位到高位 ] begin Show Message( BMP); //那么这个是 BMP 格式的文件 end else if Buffer=$D8FF then //如果前两个字节是以 D8FF[低位到高位 ] begin //JPEG Show Message( JPEG); // 一样 下面不注释了 end else if Buffer=$4947 then begin //GIF Show Message( GIF); end else if Buffer=$050A then begin //PCX Show Message( PCX); end else if Buffer=$5089 then begin //PNG Show Message( PNG); end else if Buffer=$4238 then begin //PSD Show Message( PSD); end else if Buffer=$A659 then begin //RAS Show Message( RAS); end else if Buffer=$DA01 then begin //SGI Show Message( SGI); end else

文档评论(0)

1亿VIP精品文档

相关文档