JFIF格式的Jpeg属性读取

JFIF格式的Jpeg属性读取, 读取了标准文件头, 其它内容结构需要逐项解析, 暂时没有做, 有感兴趣的朋友可以继续完善.

procedure TJFIF.ReadAPPn;
var
  wrd, wrd2  : word;
  str : string;
begin
  wrd := GetWord;
  while (wrd >= $FFE1) and (wrd <= $FFEF) do
  begin
    wrd2 := GetWord - 2;
    str := GetString(wrd2);
    mmoJpegInfo.lines.Add('APPn: ' + str);
    wrd := GetWord;
  end;
end;

procedure TJFIF.ReadJFIFInfo;
var
  wrdImage  : word; //word read from image file
  dwdImage  : dword; //double word read from image file
  bytImage  : byte; //byte read from image file
  strImage  : string; //string read from image file
  iSize : integer;
begin
  {read exif data size}
  i64RefPos := fsImage.Position;
  wrdImage := GetWord;
  iSize := wrdImage;
  mmoJpegInfo.lines.Add('JFIF Data Size=' + Inttostr(wrdImage));

  {read actual exif header}
  strImage := GetString(4);
  if strImage <> 'JFIF' then
    exit
  else
    mmoJpegInfo.lines.Add('Header: ' + strImage);

  //read a null bytes after JfIF header
  GetByte;

  //Get version
  mmoJpegInfo.lines.Add('version:' + IntToStr(GetByte) + '.' + IntToStr(GetByte));

  //Get Units
  bytImage := GetByte;
  case bytImage of
    0 : mmoJpegInfo.lines.Add('Units : none');
    1 : mmoJpegInfo.lines.Add('Units : inch(DPI)');
    2 : mmoJpegInfo.lines.Add('Units : CM(DPC)');
  end;

  //Xdensity
  mmoJpegInfo.lines.Add('Xdensity:' + IntToStr(GetWord));
  //Ydensity
  mmoJpegInfo.lines.Add('Ydensity:' + IntToStr(GetWord));
  //Xthumbnail
  mmoJpegInfo.lines.Add('Xthumbnail:' + IntToStr(GetByte));
  //Ythumbnail
  mmoJpegInfo.lines.Add('Ythumbnail:' + IntToStr(GetByte));

  fsImage.Position := i64RefPos + iSize;
  ReadAPPn;
end; {read information from the jpeg file}

代码中的基础函数在下边链接的博文中获取

Jpeg图片属性读取EXIF

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值