我已经安装了找到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。

09-06 09:26