Delphi 取JPG图片内的Exif信息

这是一个Delphi函数,用于从TGPImage对象中获取指定的Exif项信息。根据属性类型,它能处理ASCII字符串、分数、整数和字节数据,并将结果转换为合适的形式。此外,提供了指向源代码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

// 取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;
下载:  http://download1.youkuaiyun.com/down3/20070516/16143519219.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值