DEXIFパッケージがインストールされていて、EXIF-Entriesを読み取ることができます。ただし、ドキュメントに記載されている計算値ではありません。 次のコードは、動作するコードを示しています。コメントされた行について、私はエラー:識別子identsには「focalLenght」というメンバーはありません。 これらのフィールドとそれ以上のフィールドをどのように保持できますか?DExif-Packageの特定のフィールドに準拠しています
procedure TForm1.EXIFAnzeigen(filename: string);
var
ImgData: TImgData;
i :integer;
begin
//EDitor leeren
ValueListEditor1.Strings.Clear;
if FileExists(filename) then begin
ImgData:= TImgData.Create();
ImgData.Tracelevel :=1;
try
if uppercase(ExtractFileExt(filename)) = '.JPG' then begin
if ImgData.ProcessFile(filename) then begin
if ImgData.HasEXIF then begin
ValueListEditor1.InsertRow('Camera Make',
ImgData.ExifObj.CameraMake,True);
ValueListEditor1.InsertRow('Camera Modell',
ImgData.ExifObj.CameraModel,True);
ValueListEditor1.InsertRow('Picture DateTime',
FormatDateTime(ISO_DATETIME_FORMAT, ImgData.ExifObj.GetImgDateTime),True);
ValueListEditor1.InsertRow('Width',
inttostr(ImgData.ExifObj.Width),True);
ValueListEditor1.InsertRow('FlashUsed',
intToStr(ImgData.ExifObj.FlashUsed),True);
// ValueListEditor1.InsertRow('FocalLength',
// inttostr(ImgData.ExifObj.FocalLength),True);
// ValueListEditor1.InsertRow('ApertureFNumber',
// ImgData.ExifObj.ApertureFNumber,True);
// ValueListEditor1.InsertRow('ExposureTime',
// ImgData.ExifObj.ExposureTime,True);
// ValueListEditor1.InsertRow('Distance',
// ImgData.ExifObj.Distance,True);
// ValueListEditor1.InsertRow('Process',
// ImgData.ExifObj.Process,True);
end else begin
ValueListEditor1.InsertRow('No EXIF','No Data',True);
end;
end else begin
ValueListEditor1.InsertRow('No EXIF','Processdata',True);
end;
end else begin
ValueListEditor1.Strings.Clear;
end;
finally
ImgData.Free;
end;
end;
end;
あなたがしようとしました文書が言うように
しかし
FocalLength
、そしてあなたのコードで失敗などは、別の方法でアクセスする必要がありますソースコードを読んで、どのようなプロパティが利用可能か、どのような場合にどのように使用できるかを確認します。 –コードを検索しましたが、どこでも「FocalLenght」は見つかりませんでした。ドキュメントを読むだけです。 – ratmalwer
さて、FocalLenghtではなく、FocalLengthです。あなたの投稿と最後のコメントの両方であなたが綴った方法でそれを探しているなら、あなたはそれを見つけられません。あなたがあなたの検索のためにそれを正しく綴り、それを見つけられないなら、そこにはありません。 –