Delphi 取JPG图片内的Exif信息

//取Exif信息
function GetExifItem(GPImage:TGPImage;ItemID: PROPID): String;
var
  PropSize: UINT;
  PropItem: PPropertyItem;
  S:PChar;
  S1,S2:String;
begin
  PropSize :
= GPImage.GetPropertyItemSize(ItemID);
  
if PropSize=0 then begin
    Result:
='';
    Exit;
  end;
  GetMem(PropItem ,PropSize);
  GPImage.GetPropertyItem(ItemID, PropSize, PropItem);
  
//字符
  if PropItem.type_= PropertyTagTypeASCII then begin
    Result:
=PChar(PropItem.Value);
  end;
  
//分数
  if (PropItem.type_= PropertyTagTypeRational)
    or (PropItem.type_
=PropertyTagTypeSRational) then begin
    S:
=PChar(PropItem.Value);
    S1:
=IntToHex(Ord(S[3]),2)+IntToHex(Ord(S[2]),2)+
        IntToHex(Ord(S[
1]),2)+IntToHex(Ord(S[0]),2);
    S2:
=IntToHex(Ord(S[7]),2)+IntToHex(Ord(S[6]),2)+
        IntToHex(Ord(S[
5]),2)+IntToHex(Ord(S[4]),2);
    Result:
=IntToStr(StrToInt('$'+S1))+'/'+IntToStr(StrToInt('$'+S2));
  end;
  
//数字
  if PropItem.type_= PropertyTagTypeShort then begin
    S:
=PChar(PropItem.Value);
    S1:
=IntToHex(Ord(S[1]),2)+IntToHex(Ord(S[0]),2);
    Result:
=IntToStr(StrToInt('$'+S1));
  end;
  
//字节
{if PropItem.type_= PropertyTagTypeByte then begin
    S:
=PChar(PropItem.Value);
    S1:
=IntToHex(Ord(S[1]),2)+IntToHex(Ord(S[0]),2);
    Result:
=IntToStr(StrToInt('$'+S1));
  end;}

  FreeMem(PropItem);
end;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值