//
取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



































{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;}


下载: http://download1.youkuaiyun.com/down3/20070516/16143519219.zip