我需要使用 Android 应用(来自相机或画廊)拍照并检查其 EXIF 日期时间(以及其他几个属性)。我已经成功实现了 JPG 图像的接收并将其加载到 TStream 和 GUI Image 组件中。但我无法提取 EXIF 数据。
我已经尝试了以下代码(并且它是互联网上可用的变体):
procedure ReadEXIF(aPath: string);
var
LEXIF: JExifInterface;
LDateTaken: string;
begin
// Path looks like:
// /data/data/com.embarcadero.SimpleLogin/cache/IMG_20190305_085250104151537.jpg
LEXIF := TJExifInterface.JavaClass.init(StringToJString(aPath));
LDateTaken := JStringToString(LEXIF.getAttribute(TJExifInterface.JavaClass.TAG_DATETIME));
Log.d(LDateTaken);
end;
但它返回“未检测到原始图像”错误。
如何读取 EXIF 数据?
PS 尝试了 CCR-EXIF 库,但它不会为 FMX 编译(整个代码中有太多 Ansi 引用)。
PPS 我已验证接收到的图像具有 EXIF 数据(将其从流中保存到其他位置并检查)