//取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;
Delphi 取JPG图片内的Exif信息
最新推荐文章于 2023-12-28 17:41:29 发布