|
@@ -0,0 +1,69 @@
|
|
|
+{ %opt=-Sg }
|
|
|
+
|
|
|
+program fsz;
|
|
|
+// fpc -OoREGVAR az.pas; ./az
|
|
|
+// fpc -OoNoREGVAR az.pas; ./az
|
|
|
+
|
|
|
+// {$mode delphi}
|
|
|
+{$mode objfpc}
|
|
|
+
|
|
|
+Type
|
|
|
+ ByteRA0 = array [0..0] of byte;
|
|
|
+ Bytep0 = ^ByteRA0;
|
|
|
+TNIFTIhdr = record //Next: analyze Format Header structure
|
|
|
+ HdrSz : longint; //MUST BE 348
|
|
|
+end;
|
|
|
+
|
|
|
+function readTiff(fnm: string; nhdr: TNIFTIhdr; img: byteP0): string;
|
|
|
+label
|
|
|
+ 555;
|
|
|
+type
|
|
|
+ TTIFFhdr = record
|
|
|
+ Compression, ImageHeight, ImageWidth,
|
|
|
+ NewSubfileType: uint32;
|
|
|
+ end;
|
|
|
+const
|
|
|
+ kMaxIFD = 2200;
|
|
|
+ kVal = 1050090;
|
|
|
+var
|
|
|
+ fsz, i, ok1: integer{int64};
|
|
|
+ jj,w, nTag, nIFD: uint32 {uint64};
|
|
|
+ hdr: array[1..kMaxIFD] of TTIFFhdr;
|
|
|
+begin
|
|
|
+ result := '';
|
|
|
+ fsz := kVal;
|
|
|
+ ok1 := kVal;
|
|
|
+ jj := kVal;
|
|
|
+ w := kVal;
|
|
|
+ i := kVal;
|
|
|
+ nTag := kVal;
|
|
|
+ nIFD := kVal;
|
|
|
+ writeln('Value ', fsz,' ',ok1,' ',jj,' ',w,' ',i,' ',nTag,' ',nIFD,' -- ', kVal);
|
|
|
+ if fsz <> kVal then
|
|
|
+ halt(1);
|
|
|
+ if ok1 <> kVal then
|
|
|
+ halt(2);
|
|
|
+ if jj <> kVal then
|
|
|
+ halt(3);
|
|
|
+ if w <> kVal then
|
|
|
+ halt(4);
|
|
|
+ if i <> kVal then
|
|
|
+ halt(5);
|
|
|
+ if nTag <> kVal then
|
|
|
+ halt(6);
|
|
|
+ if nIFD <> kVal then
|
|
|
+ halt(7);
|
|
|
+ 555:
|
|
|
+end;
|
|
|
+
|
|
|
+procedure ReportTiff();
|
|
|
+var
|
|
|
+ img: byteP0;
|
|
|
+ nhdr: TNIFTIhdr;
|
|
|
+begin
|
|
|
+ readTiff('xxx', nhdr, img);
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ ReportTiff();
|
|
|
+end.
|