1

EXIF データを JPG 画像に書き込める Delphi7 用のコンポーネントを探しています。

カメラで撮影した写真をつなぎ合わせてパノラマを作成することがよくあります。PTGui は、私がそのようなパノラマを作成するために使用するプログラムです。問題は、元の画像の EXIF データが最終画像に保持されないことです。

Delphi7 を使用して、セットの最初の画像から EXIF データを読み取り、そのデータを最終的なパノラマ画像に書き込むコードを書きたいと思います。

CCR EXIF を見つけることができましたが、D7 ではなく、Delphi 2006 以降のものです...

誰でもアイデア、ヒント、手がかりを提案できますか?


編集済み:トピック外と考えられる質問をして申し訳ありません。もちろん、それは私の意図ではありませんでした。

Warren P に答えて感謝します。はい、Delphi7 で CCR を試しました。

サンプル コードを試してみると、次のエラーが返されます。 Constant expression expected.

この行で: {$IF CompilerVersion < 23} //no FMX before XE2

CCR.Exif.incファイル内

サンプルには次の 3 種類があります。

  • ファイル名の末尾に 2009 を付ける
  • ファイル名の末尾に XE を付ける
  • ファイル名だけ

この小さなコードは、欠落している DCU ファイルを返します。

uses 
  CCR.Exif;

procedure ReadCameraMakeAndModel(const FileName: string;
  out Make, Model: string);
var
  ExifData: TExifData;
begin
  ExifData := TExifData.Create;
  try
    ExifData.LoadFromGraphic(FileName);
    Make := ExifData.CameraMake;
    Model := ExifData.CameraModel;
  finally
    ExifData.Free;
  end; 
end;

File not found: CCR.Exif.dcu

DCU フォルダに DCU ファイルがありません。

上記のエラーのため、CCR Exif は Delphi 7 用ではないと結論付けましたが、間違っている可能性があります。


編集 2 いくつかの情報を更新しています:

CCR Exif をコンパイルできるはずの Delphi 2007 をインストールしました。しかし、CCR Exif に付随するサンプル プロジェクトをコンパイルしようとすると、奇妙な動作に直面します。次のサンプルをコンパイルできます。 IPTCEditor XMPBrowser

しかし、私は以下をコンパイルできません: ExifList JpegDump ResaveTest Screenshot TimeShift

エラーはすべて同じです。

このブロックで:

if Value <> LastSetDateTimeValue then
  begin
    LastSetDateTimeValue := Value;
    LastSetDateTimeMainStr := DateTimeToExifString(Value);
    LastSetDateTimeSubSecStr := GetExifSubSecsString(Value);
  end;

エラー:

[DCC Error] CCR.Exif.pas(2475): E2010 Incompatible types: 'TDateTime' and 'TDateTimeTagValue'
[DCC Error] CCR.Exif.pas(4410): E2010 Incompatible types: 'TDateTime' and 'TDateTimeTagValue'
[DCC Error] CCR.Exif.pas(4411): E2010 Incompatible types: 'TDateTime' and 'TDateTimeTagValue'
[DCC Error] ExifList.dpr(17): F2063 Could not compile used unit '..\..\CCR.Exif.pas'

奇妙なことに、私にはDelphi XEを持っている友人がいますが、彼はエラーなしでサンプルをコンパイルできます... :-(

CCR.Exif.BaseUtils.pas を検索すると、DateTimeTagValuerecordとして見つかりました。しかし、なぜ私の友人はまったく同じパッケージをコンパイルできるのでしょうか? そして、私はできませんか?

ここに、私のデスク レイアウトのスクリーンショットがあります。

ここに画像の説明を入力 誰かが手がかりを持っていますか?

4

0 に答える 0