我想创建一个通用函数,用于从磁盘加载任意类型的图像(gif,jpg,bmp,png等)并返回位图。如何将Exif功能添加到TBitmap?
function LoadGraph(FileName: string): TBitmap; {pseudocode}
begin
if FileIsJpeg then
jpeg.LoadFromFile;
Bitmap.Exif.Assign(Jpeg.Exif);
end;
事情是当输入类型是Jpeg时我需要访问Exif数据。 所以,我想创建一个类助手这样的:
TYPE
TBitmapHelper = class helper for TBitmap
public
FExifData: TExif;
end;
然而,似乎Delphi编译器不具备这种能力(没有?)我得到这个编译错误:
E2599 Field definition not allowed in helper type
如何实现这一目标?
我可以这样做:函数LoadGraph(FileName:string; out Exif:TExif):TBitmap但不像类助手那么优雅。对? – Ampere
不,助手不能添加数据成员,只能添加方法和属性。但是一个数据成员不会被广泛使用。数据何时写入?你会如何钩住文件读取? –
因此,在我看来,您不会尝试将此功能添加到“TBitmap”,您会找到解决该问题的另一种方法。 –