美文网首页
简单判断图像的真正格式

简单判断图像的真正格式

作者: 大龙10 | 来源:发表于2022-06-06 11:23 被阅读0次

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

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


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

  • BMP:
    以"BM"开头,也就是⽂件0x00位置是ascII的'B',0x01位置是ascII的'M'
  • JPEG: 0x06-0x09 "JFIF"
  • GIF: 0x00-0x02 "GIF"
  • PNG: 0x01-0x03 "PNG"

  安装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;

相关文章

  • 简单判断图像的真正格式

      今天遇到⼀个问题:  使用delphi打开C#存储生成的Jpeg格式的二维码图形文件居然⽆法正确读取。但是双击...

  • WebRTC 视频基础之一: YUV 格式

    图像格式 最简单的图像格式是 RGB24, 每个像素用24bits 来表示,三原色的每个颜色用 8 bits 来表...

  • 简单的图像格式 PPM——图像数据验证

    工作上需要测试视频解码之后的数据或是经过算法处理之后图像是否符合预期,可以使用一些现有的格式比如 JPG、PNG等...

  • 2018-10-16图像编码问题

    图像的信息不像我们想的那么简单,看着是一张黑白图,其实里面有各种各样的像素值。看着后缀都是png,其实真正的格式却...

  • YYImage/YYWebImage

    YYImage YYKit的图像框架 显示普通动画类型图片 显示帧动画 显示精灵图片精灵图片? 判断图片格式 YY...

  • web图像

    图像(image) 常用的图像文件存储格式: CDR格式 该格式是CoreDraw软件专用的一种图形文件存储格式;...

  • js 判断字符串是否是JSON字符

    参考 -【最简单的方法】js判断字符串是否为JSON格式

  • 图形图像基础知识(3)---- Bmp/Tga 图像格式分析

    BMP图像格式 BMP图像格式位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,占用的空间也比较大,BMP...

  • Bitmap Images And Image Masks

    位图图像信息 Quartz 支持多种图像格式,并且内置了几种流行格式的支持。在 iOS 中,内置的格式包括 JPE...

  • 图像处理之vImage(一)

    vImage学习笔记(一)——概述 一、关于图像格式 Image Formats 图像格式(Image Forma...

网友评论

      本文标题:简单判断图像的真正格式

      本文链接:https://www.haomeiwen.com/subject/izzmprtx.html