您的位置:首页 > 编程语言 > Delphi

Delphi 取JPG图片内的Exif信息

2007-05-16 14:35 375 查看
//取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.csdn.net/down3/20070516/16143519219.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  delphi string