我已经安装了找到here的CCR.EXIF软件包。但是我有一些问题。
我找到了用于读取有关图像的GPS信息的代码,并尝试使用该代码,但是在CheckTrue
上出现错误,现在我不确定这是否是另一种编程语言或是否犯了安装错误。
procedure TstExifLE.ReadGPSTest;
var
imgInfo: TImgInfo;
lTag: TTag;
begin
imgInfo := TImgInfo.Create;
try
imgInfo.LoadFromFile(WorkFile_JpegWithExif);
lTag := imgInfo.ExifData.TagByName['GPSVersionID'];
CheckTrue(lTag <> nil, 'Tag "GPSVersionID" not found');
CheckTrue(lTag is TVersionTag, 'Tag "GPSVersionID" is not TVersionTag');
TVersionTag(lTag).Separator := '.';
CheckEquals('2.3.0.0', lTag.AsString, 'Value mismatch of tag "GPSVersionID"');
lTag := imgInfo.ExifData.TagByName['GPSLatitude'];
CheckTrue(lTag <> nil, 'Tag "GPSLatitude" not found');
CheckTrue(lTag is TGPSPositionTag, 'Tag "GPSLatitude" is not a TGpsPositionTag');
TGpsPositionTag(lTag).FormatStr := '%0:.0f deg %1:.0f'' %2:.2f"';
CheckEquals('51 deg 33'' 48.28"', lTag.AsString, 'Value mismatch of tag "GPSLatitude"');
lTag := imgInfo.ExifData.TagByName['GPSLatitudeRef'];
CheckTrue(lTag <> nil, 'Tag "GPSLatitudeRef" not found');
CheckEquals('South', lTag.AsString, 'Value mismatch of tag "GPSLatitudeRef"');
lTag := imgInfo.ExifData.TagByName['GPSLongitude'];
CheckTrue(lTag <> nil, 'Tag "GPSLongitude" not found');
CheckTrue(lTag is TGPSPositionTag, 'Tag "GPSLongitude" is not a TGpsPositionTag');
TGpsPositionTag(lTag).FormatStr := '%0:.0f deg %1:.0f'' %2:.2f"';
CheckEquals('59 deg 49'' 53.55"', lTag.AsString, 'Value mismatch of tag "GPSLongitude"');
lTag := imgInfo.ExifData.TagByName['GPSLongitudeRef'];
CheckTrue(lTag <> nil, 'Tag "GPSLongitudeRef" not found');
CheckEquals('West', lTag.AsString, 'Value mismatch of tag "GPSLongitudeRef"');
finally
imgInfo.Free;
end;
end;
错误信息:
-找不到标识符“ TstExifLE”
-找不到标识符“ CheckTrue”
-找不到标识符“ CheckEquals”
编辑
我制作了类TstExifLe,这是我得到的以下错误
找不到标识符“ TTestCase”
最佳答案
找到的代码是DUnit测试的一部分。所有DUnit测试都来自TTestCase,并使用CheckTrue,CheckEquals等方法作为测试已通过的断言。您将需要重构代码以消除对DUnit进行编译的需要,或者您只是想在运行中看到它,请下载并安装DUnit。