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 を検索すると、DateTimeTagValueがrecordとして見つかりました。しかし、なぜ私の友人はまったく同じパッケージをコンパイルできるのでしょうか? そして、私はできませんか?
ここに、私のデスク レイアウトのスクリーンショットがあります。
誰かが手がかりを持っていますか?