|
|
1.1 ! root 1: .TH PICO 1 ! 2: .CT 1 editor graphics ! 3: .SH NAME ! 4: pico \(mi graphics editor ! 5: .SH SYNOPSIS ! 6: .B pico ! 7: [ ! 8: .B -mfto ! 9: ] ! 10: [ ! 11: .B -wN -hN ! 12: ] ! 13: [ ! 14: .I files ! 15: ] ! 16: .SH DESCRIPTION ! 17: .I Pico ! 18: is an interactive editor for grey-scale and color images. ! 19: Editing operations are expressed in a C-like style. ! 20: The options are ! 21: .TP \w'\f5slower\ 'u ! 22: .BI -m n ! 23: Display on a Metheus frame buffer, ! 24: .BI /dev/om n. ! 25: A missing ! 26: .I n ! 27: is taken to be 0. ! 28: .TP ! 29: .B -f ! 30: Display on an Itoh frame buffer, ! 31: .BR /dev/iti0 . ! 32: .TP ! 33: .B -t ! 34: Show parse trees for expressions; toggled by the interactive command ! 35: .LR tree . ! 36: .TP ! 37: .B -o ! 38: Turn off the optimizer; toggled by ! 39: .LR optim . ! 40: .PP ! 41: Files are referred to in expressions as ! 42: .BI $ n, ! 43: where ! 44: .I n ! 45: is the basename or an integer, ! 46: see ! 47: .B f ! 48: below. ! 49: Otherwise file names are given as strings in double quotes, ! 50: which may be elided from names that do not contain ! 51: .LR / . ! 52: .LP ! 53: In general, the result of the previous edit ! 54: operation is available under the name ! 55: .LR old . ! 56: The destination ! 57: of the current operation is called ! 58: .LR new . ! 59: .LP ! 60: .I Pico ! 61: handles images with coordinates (0,0) in the upper left hand corner ! 62: and ! 63: .RB ( X , Y ) ! 64: in the lower right. ! 65: Brightnesses range from 0 (black) to ! 66: .BR Z ! 67: (white, ! 68: .BR Z =255). ! 69: The quantities ! 70: .BR X , Y , Z ! 71: may be used in expressions and set by options: ! 72: .TP \w'\f5slower\ 'u ! 73: .BI -w " n ! 74: Set the width ! 75: .B X ! 76: of the work area to ! 77: .I n ! 78: pixels, default 511. ! 79: .TP ! 80: .BI -h " n ! 81: Set the height ! 82: .BR Y , ! 83: default 511. ! 84: .PP ! 85: .LP ! 86: .I Pico ! 87: reads commands from the standard input: ! 88: .TP ! 89: .B help ! 90: Give a synopsis of commands and functions. ! 91: .TP ! 92: .BI a " file ! 93: .br ! 94: .ns ! 95: .TP ! 96: .BI a " x y w d file" ! 97: Attach a new file. ! 98: Optional parameters ! 99: .I x ! 100: and ! 101: .I y ! 102: give the origin of a subrectangle in the work buffer; ! 103: .I w ! 104: and ! 105: .I d ! 106: define width and depth of the image as stored in the file. ! 107: .TP ! 108: .BI d " file" ! 109: .PD0 ! 110: .TP ! 111: .BI "d $" n ! 112: Delete (close) the file. ! 113: .PD ! 114: .TP ! 115: .BI h " file" ! 116: Read header information from the file. ! 117: .TP ! 118: .BI r " file" ! 119: Read commands from ! 120: .I file ! 121: as if they were typed on the terminal. ! 122: Can not be done recursively. ! 123: .TP ! 124: .BI w " file ! 125: .br ! 126: .ns ! 127: .TP ! 128: .BI "w - " file ! 129: Write the file, restricted to the current window ! 130: (see below). ! 131: Use ! 132: .I pico ! 133: format by default. ! 134: With a minus flag, ! 135: write a headerless image ! 136: (red channel only, if picture is colored); see also ! 137: .IR picfile (5). ! 138: .TP ! 139: .B nocolor ! 140: .PD0 ! 141: .TP ! 142: .B color ! 143: Set the number of channels updated in the work buffer to 1 ! 144: (black and white) or 3 (red, green, blue). ! 145: .PD ! 146: .TP ! 147: .BI window " x y w d" ! 148: Restrict the work area to a portion of the ! 149: work buffer with the upper left corner at ! 150: .RI ( x,y ), ! 151: and the lower right at ! 152: .RI ( x+w, y+d ). ! 153: .TP ! 154: .BI get " file" ! 155: .br ! 156: .ns ! 157: .TP ! 158: .BI "get $" n ! 159: The picture file is (re)opened and read into the work area. ! 160: .TP ! 161: .B f ! 162: Show names, sizes, and file numbers of open files. ! 163: .TP ! 164: .B faster ! 165: .br ! 166: .ns ! 167: .TP ! 168: .B slower ! 169: In slow display the screen is updated once per pixel computed; ! 170: in fast display (default), once per line of pixels. ! 171: .TP ! 172: .BI show " name" ! 173: Show symbol table information, such as the current value of variables. ! 174: If ! 175: .I name ! 176: is omitted, the whole symbol table is shown. ! 177: .TP ! 178: .B functions ! 179: Print information on all user defined and builtin functions. ! 180: .TP ! 181: .BI def " name \fB(\fI args \fB) {\fI program \fB}" ! 182: Define a function, with optional arguments. ! 183: Variables are declared in these styles: ! 184: .PD0 ! 185: .IP ! 186: .EX ! 187: int var; ! 188: global int var; ! 189: array var[N]; ! 190: global array var[N]; ! 191: .EE ! 192: .PD ! 193: .TP ! 194: .BI x " expr" ! 195: Execute the expression in a default loop over all pixels in the ! 196: current window. ! 197: .TP ! 198: .BI "x {" program " }" ! 199: Execute the ! 200: .I program. ! 201: The program must define its own control flow. ! 202: .TP ! 203: .B q ! 204: Quit. ! 205: .SH EXAMPLES ! 206: .TP ! 207: .L "pico -w1280 -h1024 -m5" ! 208: Get a work buffer that exactly fills a Metheus screen. ! 209: .TP ! 210: .L ! 211: a "/tmp/images/rob" ! 212: Make a file accessible. ! 213: It will be known henceforth as ! 214: .LR $rob . ! 215: .PP ! 216: .EX ! 217: .L a 1280 0 3072 512 junk ! 218: .L get $junk ! 219: .EE ! 220: .PD0 ! 221: .IP ! 222: Direct attention to a 512\(mu512 subrectangle in the middle ! 223: of a 3072\(mu512 image stored in a file named junk, ! 224: and read it into the workspace. ! 225: .LP ! 226: .EX ! 227: x new = Z - old ! 228: x new[x,y] = Z - old[x,y] ! 229: x {for(x=0; x<=X; x++) for(y=0; y<=Y; y++) new[x,y] = Z-old[x,y];} ! 230: .EE ! 231: .PD0 ! 232: .IP ! 233: Three ways to make a negative image. ! 234: Note the defaults on control flow ! 235: and array indexing. ! 236: .PD ! 237: .LP ! 238: .EX ! 239: window 0 0 256 256 ! 240: x new = $1[xclamp(x*2), yclamp(y*2)] ! 241: .EE ! 242: .PD0 ! 243: .IP ! 244: Scale a 512\(mu512 image to one quarter of the screen. ! 245: The built-in functions ! 246: .L xclamp ! 247: and ! 248: .L yclamp ! 249: guard against indexing out of range. ! 250: .PD ! 251: .LP ! 252: .EX ! 253: x { printf("current value of %s[%d]:\et%d\en", "histo", 128, hist[128]); } ! 254: .EE ! 255: .PD0 ! 256: .IP ! 257: Turn off the default control flow (curly braces) and use the ! 258: builtin function printf to check the value of an array element. ! 259: .SH "SEE ALSO" ! 260: .IR bcp (1), ! 261: .IR imscan (1), ! 262: .IR flicks (9.1), ! 263: .IR rebecca (9.1), ! 264: .IR picfile (5), ! 265: .IR flickfile (9.5) ! 266: .br ! 267: G. J. Holzmann, ! 268: `PICO Tutorial', ! 269: this manual, Volume 2 ! 270: .br ! 271: G. J. Holzmann, ! 272: .I Beyond Photography\(emthe Digital Darkroom, ! 273: Prentice-Hall, 1988
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.