简单判断图像的真正格式

2022-06-06  本文已影响0人  大龙10

  今天遇到⼀个问题:
  使用delphi打开C#存储生成的Jpeg格式的二维码图形文件居然⽆法正确读取。但是双击该图形文件却能正确读取图像的。
  跟踪调试进去,发现是读取⽂件头后发现格式不对,所以delphi没有继续读了,报错!

  ⽤UEdit打开⼀看,发现png字样,发现原来这个“Jpeg”其实是png格式的图像⽂件。


  之后测试了下,发现现在的图像编辑软件对后缀是宽容的。也就说明它们不是根据后缀来判断图像格式的。通过⽤UE打开BMP/JPEG/PNG/GIF四种格式的⽂件。
  我们发现了⼀些规律,可以根据这些规律简单判断图像的真正格式。

  安装pngimage控件,调用显示出png图像。

procedure TForm1.Button3Click(Sender: TObject);
var
Stream:TMemoryStream;
Jpg:TjpegImage;
Png: TPngObject;

begin
 Png := TPngObject.Create;
  try
      Png.LoadFromFile('D:\\ST80_Print_JPG\\1552458000.jpeg');
      image1.Picture.Assign(Png);
    finally
      Png.Free;
    end;
 end;
上一篇 下一篇

猜你喜欢

热点阅读