-- Sample ZPL program program Grad4nbr; prototype GetImageSize(infile:file):integer; config var m : integer = GetImageSize(zin); n : integer = GetImageSize(zin); ofname : string = "output.pnm"; region IM = [1..n, 1..m]; var A, B : [IM] integer; direction north = [-1, 0]; east = [ 0, 1]; west = [ 0,-1]; south = [ 1, 0]; -- Fake ASCII format of PGM(Portable Gray Map) procedure OutImage(outfile:file; var X : [IM] integer); begin writeln(outfile, "P2"); writeln(outfile, m, " ", n); writeln(outfile, 255); [IM] writeln(outfile, X); end; procedure GetImageSize(infile:file):integer; var dim:integer; begin read(infile,dim); writeln(zerr, "Read size = ", dim); return dim; end; procedure Grad4nbr(); var outfile : file; begin [IM] read(zin, A); [north of IM] reflect A; [east of IM] reflect A; [west of IM] reflect A; [south of IM] reflect A; [IM] B := 255 - max(max(abs(A - A@north), abs(A - A@east)), max(abs(A - A@west), abs(A - A@south))); outfile := open(ofname, "w"); OutImage(outfile, B); close(outfile); end; |