############################################################################ # # File: zoomtile.icn # # Subject: Program to show a tile magnified # # Author: Ralph E. Griswold # # Date: June 28, 2002 # ############################################################################ # # This file is in the public domain. # ############################################################################ # # This program provides an optionally magnified view of a tile. # # File names are given on command line. Image files are written to # _zoom.gif. # # Options are: # # -z i zoom factor, default 8 # -g provide grid; only supported if zoom factor > 2 # ############################################################################ # # Requires: Version 9 graphics # ############################################################################ # # Links: basename, options, patutils, win # ############################################################################ link basename link options link patutils link win procedure main(args) local i, x, y, opts, magnif, pattern, dims, row, pixel, width, height, glist local name, input opts := options(args, "z+g") magnif := \opts["z"] | 8 every name := !args do { input := open(name) | stop("Cannot open ", name) pattern := readpatt(input) | stop("*** no tile specification") close(input) dims := tiledim(pattern) width := magnif * dims.w height := magnif * dims.h win(width, height) glist := [] if \opts["g"] & (magnif > 2) then { every y := 0 to height by magnif do DrawLine(0, y, width, y) every x := 0 to width by magnif do DrawLine(x, 0, x, height) } DrawTile(0, 0, pattern, , magnif) WriteImage(basename(name, ".blp") || "_zoom.gif") WClose(&window) &window := &null } end