Obter o tamanho de um arquivo de imagem TIF
Crie uma nova unit:
unit TifSize;
interface
uses
Windows, Classes, SysUtils;
procedure GetTifSize(sFileName: string; var iWidth, iHeight: Integer);
implementation
type
TTifHeader = Record
Signature: WORD;
Version: Word;
IFD: DWORD;
end;
TIDF_Field = Record
Tag: Word;
FieldType: Word;
ValCount: DWord;
ValOffset: DWORD;
end;
procedure GetTifSize(sFileName: string; var iWidth, iHeight: Integer);
var
TifFile: TFileStream;
Header: tTifHeader;
DirEntries: Word;
Field: TIDF_Field;
Cnt: Integer;
begin
iWidth := -1;
iHeight := -1;
TifFile := TFileStream.Create (sFileName, fmOpenRead);
Try
TifFile.Read(Header, 8);
TifFile.Position := Header.IFD;
TifFile.Read(DirEntries, 2);
for Cnt := 1 to DirEntries do
begin
TifFile.Read(Field, 12);
case Field.Tag of
$0100: iWidth := Field.ValOffset;
$0101: iHeight := Field.ValOffset;
end;
if (iWidth <> -1) and (iHeight <> -1) then
Break;
end;
finally
FreeAndNil ( TifFile );
end;
end;
end.