我正在寻找一个可以将EXIF数据写入JPG图像的Delphi7组件。
我经常制作全景图,加入我用相机拍摄的一些照片。 PTGui是我用来制作这种全景图的程序。问题是原始图片中的EXIF数据不会保留在最终图像中。
我想用Delphi7编写一个代码,它从集合的第一个图像中读取EXIF数据,并将该数据写入最终的全景图像。
我可以找到CCR EXIF,但它来自Delphi 2006,而不是D7 ......
任何人都可以提出一些想法,提示,线索?
被修改: 我很遗憾地提出一个偏离主题的问题。当然这不是我的意图。
回答并感谢Warren P,是的,我尝试使用Delphi7进行CCR。
尝试其任何示例代码,都会返回此错误:
Constant expression expected.
在这一行:
{$IF CompilerVersion < 23} //no FMX before XE2
有三种样本:
这个小代码返回一个丢失的DCU文件:
CCR.Exif.inc
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;
DCU文件夹中没有DCU文件。
由于上述错误,我得出的结论是CCR Exif不适用于Delphi 7,但我可能错了。
已编辑2 更新一些信息:
我安装了Delphi 2007,应该可以编译CCR Exif。
但是当我尝试编译CCR Exif附带的一些Samples项目时,我面临着一种奇怪的行为。我可以编译以下示例:
File not found: CCR.Exif.dcu
IPTCEditor
但我无法编译以下内容:
XMPBrowser
ExifList
JpegDump
ResaveTest
Screenshot
所有这些错误都是一样的:
在这个街区:
TimeShift
错误:
if Value <> LastSetDateTimeValue then
begin
LastSetDateTimeValue := Value;
LastSetDateTimeMainStr := DateTimeToExifString(Value);
LastSetDateTimeSubSecStr := GetExifSubSecsString(Value);
end;
奇怪的是我有一个朋友 Delphi XE 但是他可以编译样本没有错误 ...: - (
搜索CCR.Exif.BaseUtils.pas我发现 DateTimeTagValue 为记录。但为什么我的朋友可以编译相同的包???而我不能?
这是我桌面布局的截图:
有人有线索吗?