home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail, ASCII text
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 53 75 62 6a 65 63 74 3a | 20 20 76 31 39 69 30 34 |Subject:| v19i04|
|00000010| 39 3a 20 20 46 42 4d 2c | 20 69 6d 61 67 65 20 6d |9: FBM,| image m|
|00000020| 61 6e 69 70 75 6c 61 74 | 69 6f 6e 20 6c 69 62 72 |anipulat|ion libr|
|00000030| 61 72 79 2c 20 50 61 72 | 74 30 33 2f 30 38 0a 4e |ary, Par|t03/08.N|
|00000040| 65 77 73 67 72 6f 75 70 | 73 3a 20 63 6f 6d 70 2e |ewsgroup|s: comp.|
|00000050| 73 6f 75 72 63 65 73 2e | 75 6e 69 78 0a 53 65 6e |sources.|unix.Sen|
|00000060| 64 65 72 3a 20 73 6f 75 | 72 63 65 73 0a 41 70 70 |der: sou|rces.App|
|00000070| 72 6f 76 65 64 3a 20 72 | 73 61 6c 7a 40 75 75 6e |roved: r|salz@uun|
|00000080| 65 74 2e 55 55 2e 4e 45 | 54 0a 0a 53 75 62 6d 69 |et.UU.NE|T..Submi|
|00000090| 74 74 65 64 2d 62 79 3a | 20 4d 69 63 68 61 65 6c |tted-by:| Michael|
|000000a0| 2e 4d 61 75 6c 64 69 6e | 40 4e 4c 2e 43 53 2e 43 |.Mauldin|@NL.CS.C|
|000000b0| 4d 55 2e 45 44 55 0a 50 | 6f 73 74 69 6e 67 2d 6e |MU.EDU.P|osting-n|
|000000c0| 75 6d 62 65 72 3a 20 56 | 6f 6c 75 6d 65 20 31 39 |umber: V|olume 19|
|000000d0| 2c 20 49 73 73 75 65 20 | 34 39 0a 41 72 63 68 69 |, Issue |49.Archi|
|000000e0| 76 65 2d 6e 61 6d 65 3a | 20 66 62 6d 2f 70 61 72 |ve-name:| fbm/par|
|000000f0| 74 30 33 0a 0a 23 21 20 | 2f 62 69 6e 2f 73 68 0a |t03..#! |/bin/sh.|
|00000100| 23 20 54 68 69 73 20 69 | 73 20 61 20 73 68 65 6c |# This i|s a shel|
|00000110| 6c 20 61 72 63 68 69 76 | 65 2e 20 20 52 65 6d 6f |l archiv|e. Remo|
|00000120| 76 65 20 61 6e 79 74 68 | 69 6e 67 20 62 65 66 6f |ve anyth|ing befo|
|00000130| 72 65 20 74 68 69 73 20 | 6c 69 6e 65 2c 20 74 68 |re this |line, th|
|00000140| 65 6e 20 75 6e 70 61 63 | 6b 0a 23 20 69 74 20 62 |en unpac|k.# it b|
|00000150| 79 20 73 61 76 69 6e 67 | 20 69 74 20 69 6e 74 6f |y saving| it into|
|00000160| 20 61 20 66 69 6c 65 20 | 61 6e 64 20 74 79 70 69 | a file |and typi|
|00000170| 6e 67 20 22 73 68 20 66 | 69 6c 65 22 2e 20 20 54 |ng "sh f|ile". T|
|00000180| 6f 20 6f 76 65 72 77 72 | 69 74 65 20 65 78 69 73 |o overwr|ite exis|
|00000190| 74 69 6e 67 0a 23 20 66 | 69 6c 65 73 2c 20 74 79 |ting.# f|iles, ty|
|000001a0| 70 65 20 22 73 68 20 66 | 69 6c 65 20 2d 63 22 2e |pe "sh f|ile -c".|
|000001b0| 20 20 59 6f 75 20 63 61 | 6e 20 61 6c 73 6f 20 66 | You ca|n also f|
|000001c0| 65 65 64 20 74 68 69 73 | 20 61 73 20 73 74 61 6e |eed this| as stan|
|000001d0| 64 61 72 64 20 69 6e 70 | 75 74 20 76 69 61 0a 23 |dard inp|ut via.#|
|000001e0| 20 75 6e 73 68 61 72 2c | 20 6f 72 20 62 79 20 74 | unshar,| or by t|
|000001f0| 79 70 69 6e 67 20 22 73 | 68 20 3c 66 69 6c 65 22 |yping "s|h <file"|
|00000200| 2c 20 65 2e 67 2e 2e 20 | 20 49 66 20 74 68 69 73 |, e.g.. | If this|
|00000210| 20 61 72 63 68 69 76 65 | 20 69 73 20 63 6f 6d 70 | archive| is comp|
|00000220| 6c 65 74 65 2c 20 79 6f | 75 0a 23 20 77 69 6c 6c |lete, yo|u.# will|
|00000230| 20 73 65 65 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 | see the| followi|
|00000240| 6e 67 20 6d 65 73 73 61 | 67 65 20 61 74 20 74 68 |ng messa|ge at th|
|00000250| 65 20 65 6e 64 3a 0a 23 | 09 09 22 45 6e 64 20 6f |e end:.#|.."End o|
|00000260| 66 20 61 72 63 68 69 76 | 65 20 33 20 28 6f 66 20 |f archiv|e 3 (of |
|00000270| 38 29 2e 22 0a 23 20 43 | 6f 6e 74 65 6e 74 73 3a |8).".# C|ontents:|
|00000280| 20 20 46 65 61 74 75 72 | 65 73 20 66 62 68 61 6c | Featur|es fbhal|
|00000290| 66 2e 31 20 66 62 6d 2e | 68 20 66 62 6e 6f 72 6d |f.1 fbm.|h fbnorm|
|000002a0| 2e 63 20 66 62 73 61 6d | 70 6c 65 2e 63 20 66 6c |.c fbsam|ple.c fl|
|000002b0| 62 79 74 65 2e 63 0a 23 | 20 20 20 66 6c 66 61 63 |byte.c.#| flfac|
|000002c0| 65 2e 63 20 66 6c 66 6c | 79 64 2e 63 20 66 6c 67 |e.c flfl|yd.c flg|
|000002d0| 69 66 77 2e 63 20 66 6c | 72 64 66 62 2e 63 20 66 |ifw.c fl|rdfb.c f|
|000002e0| 6c 72 65 61 64 2e 63 20 | 72 61 77 32 66 62 6d 2e |lread.c |raw2fbm.|
|000002f0| 63 0a 23 20 57 72 61 70 | 70 65 64 20 62 79 20 72 |c.# Wrap|ped by r|
|00000300| 73 61 6c 7a 40 66 69 67 | 2e 62 62 6e 2e 63 6f 6d |salz@fig|.bbn.com|
|00000310| 20 6f 6e 20 46 72 69 20 | 4a 75 6e 20 20 39 20 30 | on Fri |Jun 9 0|
|00000320| 38 3a 33 38 3a 32 33 20 | 31 39 38 39 0a 50 41 54 |8:38:23 |1989.PAT|
|00000330| 48 3d 2f 62 69 6e 3a 2f | 75 73 72 2f 62 69 6e 3a |H=/bin:/|usr/bin:|
|00000340| 2f 75 73 72 2f 75 63 62 | 20 3b 20 65 78 70 6f 72 |/usr/ucb| ; expor|
|00000350| 74 20 50 41 54 48 0a 69 | 66 20 74 65 73 74 20 2d |t PATH.i|f test -|
|00000360| 66 20 27 46 65 61 74 75 | 72 65 73 27 20 2d 61 20 |f 'Featu|res' -a |
|00000370| 22 24 7b 31 7d 22 20 21 | 3d 20 22 2d 63 22 20 3b |"${1}" !|= "-c" ;|
|00000380| 20 74 68 65 6e 20 0a 20 | 20 65 63 68 6f 20 73 68 | then . | echo sh|
|00000390| 61 72 3a 20 57 69 6c 6c | 20 6e 6f 74 20 63 6c 6f |ar: Will| not clo|
|000003a0| 62 62 65 72 20 65 78 69 | 73 74 69 6e 67 20 66 69 |bber exi|sting fi|
|000003b0| 6c 65 20 5c 22 27 46 65 | 61 74 75 72 65 73 27 5c |le \"'Fe|atures'\|
|000003c0| 22 0a 65 6c 73 65 0a 65 | 63 68 6f 20 73 68 61 72 |".else.e|cho shar|
|000003d0| 3a 20 45 78 74 72 61 63 | 74 69 6e 67 20 5c 22 27 |: Extrac|ting \"'|
|000003e0| 46 65 61 74 75 72 65 73 | 27 5c 22 20 5c 28 34 39 |Features|'\" \(49|
|000003f0| 35 30 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |50 chara|cters\).|
|00000400| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 46 |sed "s/^|X//" >'F|
|00000410| 65 61 74 75 72 65 73 27 | 20 3c 3c 27 45 4e 44 5f |eatures'| <<'END_|
|00000420| 4f 46 5f 46 49 4c 45 27 | 0a 58 2a 2a 2a 2a 2a 2a |OF_FILE'|.X******|
|00000430| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000440| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000450| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000460| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000470| 2a 2a 0a 58 2a 20 20 20 | 41 6e 6e 6f 75 6e 63 69 |**.X* |Announci|
|00000480| 6e 67 20 74 68 65 20 22 | 46 75 7a 7a 79 20 50 69 |ng the "|Fuzzy Pi|
|00000490| 78 4d 61 70 22 20 28 6f | 72 20 46 42 4d 29 20 69 |xMap" (o|r FBM) i|
|000004a0| 6d 61 67 65 20 6d 61 6e | 69 70 75 6c 61 74 69 6f |mage man|ipulatio|
|000004b0| 6e 20 6c 69 62 72 61 72 | 79 20 20 2a 0a 58 2a 2a |n librar|y *.X**|
|000004c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000004f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000500| 2a 2a 2a 2a 2a 2a 0a 58 | 0a 58 09 09 09 43 75 72 |******.X|.X...Cur|
|00000510| 72 65 6e 74 20 76 65 72 | 73 69 6f 6e 20 30 2e 39 |rent ver|sion 0.9|
|00000520| 34 0a 58 0a 58 54 68 65 | 20 46 42 4d 20 6c 69 62 |4.X.XThe| FBM lib|
|00000530| 72 61 72 79 20 69 73 20 | 6e 6f 77 20 61 76 61 69 |rary is |now avai|
|00000540| 6c 61 62 6c 65 20 69 6e | 20 42 65 74 61 20 74 65 |lable in| Beta te|
|00000550| 73 74 20 66 6f 72 6d 20 | 74 6f 20 69 6e 74 65 72 |st form |to inter|
|00000560| 65 73 74 65 64 0a 58 70 | 61 72 74 69 65 73 2e 20 |ested.Xp|arties. |
|00000570| 20 54 68 69 73 20 70 61 | 63 6b 61 67 65 20 61 6c | This pa|ckage al|
|00000580| 6c 6f 77 73 20 6d 61 6e | 69 70 75 6c 61 74 69 6f |lows man|ipulatio|
|00000590| 6e 20 61 6e 64 20 63 6f | 6e 76 65 72 73 69 6f 6e |n and co|nversion|
|000005a0| 20 6f 66 20 61 20 76 61 | 72 69 65 74 79 0a 58 6f | of a va|riety.Xo|
|000005b0| 66 20 63 6f 6c 6f 72 20 | 61 6e 64 20 62 6c 61 63 |f color |and blac|
|000005c0| 6b 2d 61 6e 64 2d 77 68 | 69 74 65 20 69 6d 61 67 |k-and-wh|ite imag|
|000005d0| 65 20 66 6f 72 6d 61 74 | 73 2e 0a 58 0a 58 50 68 |e format|s..X.XPh|
|000005e0| 69 6c 6f 73 6f 70 68 79 | 0a 58 0a 58 20 20 20 20 |ilosophy|.X.X |
|000005f0| 45 61 63 68 20 70 72 6f | 67 72 61 6d 20 63 61 6e |Each pro|gram can|
|00000600| 20 72 65 61 64 20 61 6e | 79 20 6f 66 20 74 68 65 | read an|y of the|
|00000610| 20 75 6e 64 65 72 73 74 | 6f 6f 64 20 66 6f 72 6d | underst|ood form|
|00000620| 61 74 73 2c 20 61 6e 64 | 0a 58 20 20 20 20 63 61 |ats, and|.X ca|
|00000630| 6e 20 77 72 69 74 65 20 | 61 6e 79 20 6f 66 20 74 |n write |any of t|
|00000640| 68 65 20 75 6e 64 65 72 | 73 74 6f 6f 64 20 66 6f |he under|stood fo|
|00000650| 72 6d 61 74 73 20 74 68 | 61 74 20 6d 61 6b 65 20 |rmats th|at make |
|00000660| 73 65 6e 73 65 20 66 6f | 72 0a 58 20 20 20 20 74 |sense fo|r.X t|
|00000670| 68 65 20 69 6d 61 67 65 | 20 64 61 74 61 2e 0a 58 |he image| data..X|
|00000680| 0a 58 20 20 20 20 50 72 | 6f 67 72 61 6d 73 20 61 |.X Pr|ograms a|
|00000690| 72 65 20 64 65 73 69 67 | 6e 65 64 20 61 72 6f 75 |re desig|ned arou|
|000006a0| 6e 64 20 73 70 65 63 69 | 66 69 63 20 69 6d 61 67 |nd speci|fic imag|
|000006b0| 65 20 6f 70 65 72 61 74 | 69 6f 6e 73 20 28 73 69 |e operat|ions (si|
|000006c0| 7a 69 6e 67 2c 0a 58 20 | 20 20 20 73 63 61 6c 69 |zing,.X | scali|
|000006d0| 6e 67 2c 20 72 65 74 6f | 6e 69 6e 67 2c 20 68 61 |ng, reto|ning, ha|
|000006e0| 6c 66 74 6f 6e 69 6e 67 | 2c 20 71 75 61 6e 74 69 |lftoning|, quanti|
|000006f0| 7a 69 6e 67 2c 20 65 74 | 63 2e 29 2c 20 72 61 74 |zing, et|c.), rat|
|00000700| 68 65 72 20 74 68 61 6e | 0a 58 20 20 20 20 73 69 |her than|.X si|
|00000710| 6d 70 6c 79 20 63 6f 6e | 76 65 72 74 69 6e 67 20 |mply con|verting |
|00000720| 66 72 6f 6d 20 6f 6e 65 | 20 66 6f 72 6d 61 74 20 |from one| format |
|00000730| 74 6f 20 61 6e 6f 74 68 | 65 72 2e 20 20 46 6f 72 |to anoth|er. For|
|00000740| 20 65 78 61 6d 70 6c 65 | 2c 0a 58 20 20 20 20 63 | example|,.X c|
|00000750| 6f 6e 76 65 72 74 69 6e | 67 20 61 20 34 62 69 74 |onvertin|g a 4bit|
|00000760| 20 63 6f 6c 6f 72 20 47 | 49 46 20 66 69 6c 65 20 | color G|IF file |
|00000770| 74 6f 20 61 20 31 62 69 | 74 20 53 75 6e 20 72 61 |to a 1bi|t Sun ra|
|00000780| 73 74 65 72 66 69 6c 65 | 0a 58 20 20 20 20 74 61 |sterfile|.X ta|
|00000790| 6b 65 73 20 74 68 65 20 | 66 6f 6c 6c 6f 77 69 6e |kes the |followin|
|000007a0| 67 20 6f 70 65 72 61 74 | 69 6f 6e 73 3a 0a 58 20 |g operat|ions:.X |
|000007b0| 20 20 20 0a 58 20 20 20 | 20 20 20 20 20 72 65 61 | .X | rea|
|000007c0| 64 20 47 49 46 20 66 6f | 72 6d 61 74 0a 58 20 20 |d GIF fo|rmat.X |
|000007d0| 20 20 20 20 20 20 6d 61 | 70 20 63 6f 6c 6f 72 20 | ma|p color |
|000007e0| 76 61 6c 75 65 73 20 74 | 6f 20 67 72 61 79 73 63 |values t|o graysc|
|000007f0| 61 6c 65 0a 58 20 20 20 | 20 20 20 20 20 61 64 6a |ale.X | adj|
|00000800| 75 73 74 20 61 73 70 65 | 63 74 20 72 61 74 69 6f |ust aspe|ct ratio|
|00000810| 20 28 31 2e 32 20 2d 2d | 3e 20 31 2e 30 29 0a 58 | (1.2 --|> 1.0).X|
|00000820| 20 20 20 20 20 20 20 20 | 73 63 61 6c 65 20 69 6d | |scale im|
|00000830| 61 67 65 20 75 70 20 74 | 6f 20 62 65 20 76 69 73 |age up t|o be vis|
|00000840| 69 62 6c 65 20 28 33 32 | 30 78 32 30 30 20 2d 2d |ible (32|0x200 --|
|00000850| 3e 20 36 34 30 78 34 38 | 30 20 6f 72 20 31 31 35 |> 640x48|0 or 115|
|00000860| 32 78 38 36 34 29 0a 58 | 20 20 20 20 20 20 20 20 |2x864).X| |
|00000870| 6f 70 74 69 6f 6e 61 6c | 6c 79 20 73 68 61 72 70 |optional|ly sharp|
|00000880| 65 6e 20 74 68 65 20 69 | 6d 61 67 65 20 28 65 64 |en the i|mage (ed|
|00000890| 67 65 20 65 6e 68 61 6e | 63 65 6d 65 6e 74 29 0a |ge enhan|cement).|
|000008a0| 58 20 20 20 20 20 20 20 | 20 6f 70 74 69 6f 6e 61 |X | optiona|
|000008b0| 6c 6c 79 20 63 6c 65 61 | 6e 20 75 70 20 22 73 6e |lly clea|n up "sn|
|000008c0| 6f 77 22 20 69 6e 20 69 | 6d 61 67 65 20 28 66 6c |ow" in i|mage (fl|
|000008d0| 69 70 20 69 73 6f 6c 61 | 74 65 64 20 70 69 78 65 |ip isola|ted pixe|
|000008e0| 6c 73 29 0a 58 20 20 20 | 20 20 20 20 20 68 61 6c |ls).X | hal|
|000008f0| 66 74 6f 6e 65 20 28 42 | 6c 75 65 20 6e 6f 69 73 |ftone (B|lue nois|
|00000900| 65 2c 20 46 6c 6f 79 64 | 2d 53 74 65 69 6e 62 65 |e, Floyd|-Steinbe|
|00000910| 72 67 2c 20 4a 61 72 76 | 69 73 2c 20 54 68 72 65 |rg, Jarv|is, Thre|
|00000920| 73 68 68 6f 6c 64 29 0a | 58 20 20 20 20 20 20 20 |shhold).|X |
|00000930| 20 77 72 69 74 65 20 53 | 75 6e 20 72 61 73 74 65 | write S|un raste|
|00000940| 72 66 69 6c 65 20 66 6f | 72 6d 61 74 2e 0a 58 0a |rfile fo|rmat..X.|
|00000950| 58 20 20 20 20 53 6f 20 | 74 68 65 72 65 20 65 71 |X So |there eq|
|00000960| 75 69 76 61 6c 65 6e 74 | 20 70 69 70 65 6c 69 6e |uivalent| pipelin|
|00000970| 65 20 6f 66 20 66 62 6d | 20 72 6f 75 74 69 6e 65 |e of fbm| routine|
|00000980| 73 20 77 6f 75 6c 64 20 | 62 65 3a 0a 58 20 20 20 |s would |be:.X |
|00000990| 20 0a 58 20 20 20 20 63 | 6c 72 32 67 72 61 79 20 | .X c|lr2gray |
|000009a0| 3c 20 66 6f 6f 2e 67 69 | 66 20 7c 20 66 62 6e 6f |< foo.gi|f | fbno|
|000009b0| 72 6d 20 7c 20 66 62 65 | 78 74 20 5b 20 61 72 67 |rm | fbe|xt [ arg|
|000009c0| 73 20 5d 20 7c 20 66 62 | 68 61 6c 66 20 5b 61 72 |s ] | fb|half [ar|
|000009d0| 67 73 5d 20 3e 20 66 6f | 6f 2e 31 62 69 74 0a 58 |gs] > fo|o.1bit.X|
|000009e0| 20 20 20 20 0a 58 20 20 | 20 20 54 68 61 74 20 77 | .X | That w|
|000009f0| 61 79 20 79 6f 75 20 68 | 61 76 65 20 6d 61 78 69 |ay you h|ave maxi|
|00000a00| 6d 75 6d 20 63 6f 6e 74 | 72 6f 6c 20 6f 76 65 72 |mum cont|rol over|
|00000a10| 20 74 68 65 20 72 65 73 | 75 6c 74 69 6e 67 20 69 | the res|ulting i|
|00000a20| 6d 61 67 65 20 73 69 7a | 65 0a 58 20 20 20 20 61 |mage siz|e.X a|
|00000a30| 6e 64 20 71 75 61 6c 69 | 74 79 2e 0a 58 0a 58 49 |nd quali|ty..X.XI|
|00000a40| 6e 70 75 74 73 20 74 68 | 65 20 66 6f 6c 6c 6f 77 |nputs th|e follow|
|00000a50| 69 6e 67 20 66 69 6c 65 | 20 66 6f 72 6d 61 74 73 |ing file| formats|
|00000a60| 0a 58 0a 58 20 20 6f 20 | 53 75 6e 20 72 61 73 74 |.X.X o |Sun rast|
|00000a70| 65 72 66 69 6c 65 73 09 | 28 31 2c 20 38 2c 20 6f |erfiles.|(1, 8, o|
|00000a80| 72 20 32 34 20 62 69 74 | 73 2c 20 63 6f 6c 6f 72 |r 24 bit|s, color|
|00000a90| 20 6f 72 20 67 72 61 79 | 73 63 61 6c 65 29 0a 58 | or gray|scale).X|
|00000aa0| 20 20 6f 20 47 49 46 20 | 66 69 6c 65 73 09 09 28 | o GIF |files..(|
|00000ab0| 31 20 74 6f 20 38 20 62 | 69 74 73 2c 20 63 6f 6c |1 to 8 b|its, col|
|00000ac0| 6f 72 20 6f 72 20 67 72 | 61 79 73 63 61 6c 65 29 |or or gr|ayscale)|
|00000ad0| 0a 58 20 20 6f 20 41 6d | 69 67 61 20 49 46 46 20 |.X o Am|iga IFF |
|00000ae0| 66 69 6c 65 73 09 28 65 | 78 63 65 70 74 20 48 41 |files.(e|xcept HA|
|00000af0| 4d 20 6d 6f 64 65 29 0a | 58 20 20 6f 20 50 43 58 |M mode).|X o PCX|
|00000b00| 20 66 69 6c 65 73 0a 58 | 20 20 6f 20 50 42 4d 20 | files.X| o PBM |
|00000b10| 62 69 74 6d 61 70 73 0a | 58 20 20 6f 20 46 61 63 |bitmaps.|X o Fac|
|00000b20| 65 20 66 69 6c 65 73 09 | 09 28 43 4d 55 20 66 6f |e files.|.(CMU fo|
|00000b30| 72 6d 61 74 20 66 6f 72 | 20 31 62 69 74 20 66 69 |rmat for| 1bit fi|
|00000b40| 6c 65 73 20 62 79 20 42 | 65 6e 6e 65 74 20 59 65 |les by B|ennet Ye|
|00000b50| 65 29 0a 58 20 20 6f 20 | 46 42 4d 20 66 69 6c 65 |e).X o |FBM file|
|00000b60| 73 09 09 28 6d 79 20 6f | 77 6e 20 66 6f 72 6d 61 |s..(my o|wn forma|
|00000b70| 74 29 0a 58 0a 58 20 20 | 20 20 28 61 75 74 6f 6d |t).X.X | (autom|
|00000b80| 61 74 69 63 61 6c 6c 79 | 20 64 65 74 65 72 6d 69 |atically| determi|
|00000b90| 6e 65 73 20 69 6e 70 75 | 74 20 66 6f 72 6d 61 74 |nes inpu|t format|
|00000ba0| 2c 20 61 6e 64 20 75 6e | 63 6f 6d 70 72 65 73 73 |, and un|compress|
|00000bb0| 65 73 0a 58 20 20 20 20 | 20 66 69 6c 65 73 20 63 |es.X | files c|
|00000bc0| 6f 6d 70 72 65 73 73 65 | 64 20 75 73 69 6e 67 20 |ompresse|d using |
|00000bd0| 27 63 6f 6d 70 72 65 73 | 73 27 29 0a 58 0a 58 4f |'compres|s').X.XO|
|00000be0| 75 74 70 75 74 73 20 74 | 68 65 20 66 6f 6c 6c 6f |utputs t|he follo|
|00000bf0| 77 69 6e 67 20 66 6f 72 | 6d 61 74 73 0a 58 0a 58 |wing for|mats.X.X|
|00000c00| 20 20 6f 20 53 75 6e 20 | 72 61 73 74 65 72 66 69 | o Sun |rasterfi|
|00000c10| 6c 65 73 0a 58 20 20 6f | 20 46 42 4d 20 66 69 6c |les.X o| FBM fil|
|00000c20| 65 73 0a 58 20 20 6f 20 | 47 49 46 20 66 69 6c 65 |es.X o |GIF file|
|00000c30| 73 09 09 28 6d 61 70 70 | 65 64 20 63 6f 6c 6f 72 |s..(mapp|ed color|
|00000c40| 20 6f 6e 6c 79 29 0a 58 | 20 20 6f 20 41 6d 69 67 | only).X| o Amig|
|00000c50| 61 20 49 46 46 20 66 69 | 6c 65 73 09 28 65 78 63 |a IFF fi|les.(exc|
|00000c60| 65 70 74 20 48 41 4d 20 | 6d 6f 64 65 29 0a 58 20 |ept HAM |mode).X |
|00000c70| 20 6f 20 50 42 4d 09 09 | 09 28 31 62 69 74 20 66 | o PBM..|.(1bit f|
|00000c80| 69 6c 65 73 20 6f 6e 6c | 79 29 0a 58 20 20 6f 20 |iles onl|y).X o |
|00000c90| 46 61 63 65 20 66 6f 72 | 6d 61 74 09 09 28 31 62 |Face for|mat..(1b|
|00000ca0| 69 74 20 66 69 6c 65 73 | 20 6f 6e 6c 79 29 0a 58 |it files| only).X|
|00000cb0| 0a 58 57 69 74 68 20 69 | 6e 70 75 74 20 63 6f 6e |.XWith i|nput con|
|00000cc0| 76 65 72 74 65 72 20 66 | 6f 72 0a 58 0a 58 20 20 |verter f|or.X.X |
|00000cd0| 6f 20 72 61 77 20 69 6d | 61 67 65 73 20 28 6c 69 |o raw im|ages (li|
|00000ce0| 6b 65 20 41 6d 69 67 61 | 20 44 69 67 69 2d 56 69 |ke Amiga| Digi-Vi|
|00000cf0| 65 77 20 66 69 6c 65 73 | 29 0a 58 20 20 6f 20 54 |ew files|).X o T|
|00000d00| 61 72 67 61 09 09 42 79 | 20 49 61 6e 20 4d 61 63 |arga..By| Ian Mac|
|00000d10| 50 68 65 64 72 61 6e 0a | 58 20 20 6f 20 50 49 43 |Phedran.|X o PIC|
|00000d20| 09 09 09 42 79 20 49 61 | 6e 20 4d 61 63 50 68 65 |...By Ia|n MacPhe|
|00000d30| 64 72 61 6e 0a 58 20 20 | 6f 20 51 52 54 09 09 09 |dran.X |o QRT...|
|00000d40| 42 79 20 42 75 74 6c 65 | 72 20 48 69 6e 65 73 0a |By Butle|r Hines.|
|00000d50| 58 0a 58 57 69 74 68 20 | 6f 75 74 70 75 74 20 63 |X.XWith |output c|
|00000d60| 6f 6e 76 65 72 74 65 72 | 73 20 66 6f 72 0a 58 0a |onverter|s for.X.|
|00000d70| 58 20 20 6f 20 50 6f 73 | 74 53 63 72 69 70 74 20 |X o Pos|tScript |
|00000d80| 20 20 20 20 20 20 20 20 | 28 31 62 69 74 20 6f 72 | |(1bit or|
|00000d90| 20 38 62 69 74 20 67 72 | 61 79 73 63 61 6c 65 20 | 8bit gr|ayscale |
|00000da0| 66 69 6c 65 73 20 6f 6e | 6c 79 29 0a 58 20 20 6f |files on|ly).X o|
|00000db0| 20 44 69 61 62 6c 6f 20 | 67 72 61 70 68 69 63 73 | Diablo |graphics|
|00000dc0| 20 20 20 20 28 31 62 69 | 74 20 66 69 6c 65 73 20 | (1bi|t files |
|00000dd0| 6f 6e 6c 79 29 0a 58 20 | 20 6f 20 54 61 72 67 61 |only).X | o Targa|
|00000de0| 09 09 42 79 20 49 61 6e | 20 4d 61 63 50 68 65 64 |..By Ian| MacPhed|
|00000df0| 72 61 6e 0a 58 0a 58 4f | 70 65 72 61 74 69 6f 6e |ran.X.XO|peration|
|00000e00| 73 0a 58 0a 58 20 20 6f | 20 45 78 74 72 61 63 74 |s.X.X o| Extract|
|00000e10| 20 72 65 63 74 61 6e 67 | 6c 65 20 28 6f 70 74 69 | rectang|le (opti|
|00000e20| 6f 6e 61 6c 6c 79 20 72 | 65 73 69 7a 69 6e 67 20 |onally r|esizing |
|00000e30| 61 6e 64 20 63 68 61 6e | 67 69 6e 67 20 61 73 70 |and chan|ging asp|
|00000e40| 65 63 74 20 72 61 74 69 | 6f 29 0a 58 20 20 6f 20 |ect rati|o).X o |
|00000e50| 43 68 61 6e 67 65 20 64 | 65 6e 73 69 74 79 20 61 |Change d|ensity a|
|00000e60| 6e 64 20 63 6f 6e 74 72 | 61 73 74 20 28 63 6f 6c |nd contr|ast (col|
|00000e70| 6f 72 20 61 6e 64 20 67 | 72 61 79 73 63 61 6c 65 |or and g|rayscale|
|00000e80| 29 0a 58 20 20 6f 20 52 | 6f 74 61 74 65 20 20 39 |).X o R|otate 9|
|00000e90| 30 2c 20 31 38 30 2c 20 | 6f 72 20 32 37 30 20 64 |0, 180, |or 270 d|
|00000ea0| 65 67 72 65 65 73 0a 58 | 20 20 6f 20 51 75 61 6e |egrees.X| o Quan|
|00000eb0| 74 69 7a 65 20 32 34 20 | 62 69 74 20 52 47 42 20 |tize 24 |bit RGB |
|00000ec0| 69 6d 61 67 65 73 20 74 | 6f 20 38 2e 2e 32 35 36 |images t|o 8..256|
|00000ed0| 20 63 6f 6c 6f 72 73 0a | 58 20 20 20 20 20 20 20 | colors.|X |
|00000ee0| 20 4d 6f 64 69 66 69 65 | 64 20 48 65 63 6b 62 65 | Modifie|d Heckbe|
|00000ef0| 72 74 20 6d 65 64 69 61 | 6e 20 63 75 74 0a 58 20 |rt media|n cut.X |
|00000f00| 20 6f 20 48 61 6c 66 74 | 6f 6e 65 20 67 72 61 79 | o Halft|one gray|
|00000f10| 73 63 61 6c 65 20 75 73 | 69 6e 67 0a 58 20 20 20 |scale us|ing.X |
|00000f20| 20 20 20 20 20 55 6c 69 | 63 68 6e 65 79 27 73 20 | Uli|chney's |
|00000f30| 42 6c 75 65 20 4e 6f 69 | 73 65 20 64 69 74 68 65 |Blue Noi|se dithe|
|00000f40| 72 69 6e 67 0a 58 20 20 | 20 20 20 20 20 20 46 6c |ring.X | Fl|
|00000f50| 6f 79 64 2d 53 74 65 69 | 6e 62 65 72 67 20 64 69 |oyd-Stei|nberg di|
|00000f60| 74 68 65 72 69 6e 67 0a | 58 20 20 20 20 20 20 20 |thering.|X |
|00000f70| 20 4a 61 72 76 69 73 27 | 73 20 43 6f 6e 73 74 72 | Jarvis'|s Constr|
|00000f80| 61 69 6e 65 64 20 61 76 | 65 72 61 67 69 6e 67 0a |ained av|eraging.|
|00000f90| 58 20 20 20 20 20 20 20 | 20 54 68 72 65 73 68 68 |X | Threshh|
|00000fa0| 6f 6c 64 69 6e 67 0a 58 | 20 20 6f 20 45 64 67 65 |olding.X| o Edge|
|00000fb0| 20 53 68 61 72 70 65 6e | 69 6e 67 20 62 79 20 44 | Sharpen|ing by D|
|00000fc0| 69 67 69 74 69 61 6c 20 | 4c 61 70 6c 61 63 69 61 |igitial |Laplacia|
|00000fd0| 6e 20 28 63 6f 6c 6f 72 | 20 6f 72 20 67 72 61 79 |n (color| or gray|
|00000fe0| 73 63 61 6c 65 29 0a 58 | 20 20 6f 20 43 6f 6e 76 |scale).X| o Conv|
|00000ff0| 65 72 74 20 63 6f 6c 6f | 72 20 74 6f 20 67 72 61 |ert colo|r to gra|
|00001000| 79 73 63 61 6c 65 20 28 | 6f 72 20 63 6f 6d 70 75 |yscale (|or compu|
|00001010| 74 65 20 22 67 72 61 79 | 22 20 63 6f 6c 6f 72 6d |te "gray|" colorm|
|00001020| 61 70 0a 58 20 20 20 20 | 20 20 20 20 73 6f 20 67 |ap.X | so g|
|00001030| 72 61 79 73 63 61 6c 65 | 20 69 6d 61 67 65 73 20 |rayscale| images |
|00001040| 63 61 6e 20 62 65 20 76 | 69 65 77 65 64 20 6f 6e |can be v|iewed on|
|00001050| 20 66 72 61 6d 65 20 62 | 75 66 66 65 72 73 29 0a | frame b|uffers).|
|00001060| 58 20 20 6f 20 43 6f 6d | 70 75 74 65 20 68 69 73 |X o Com|pute his|
|00001070| 74 6f 67 72 61 6d 73 20 | 6f 66 20 67 72 61 79 73 |tograms |of grays|
|00001080| 63 61 6c 65 20 69 6d 61 | 67 65 73 0a 58 20 20 6f |cale ima|ges.X o|
|00001090| 20 53 61 6d 70 6c 65 20 | 31 62 69 74 20 69 6d 61 | Sample |1bit ima|
|000010a0| 67 65 73 20 74 6f 20 63 | 6f 6e 76 65 72 74 20 74 |ges to c|onvert t|
|000010b0| 6f 20 67 72 61 79 73 63 | 61 6c 65 0a 58 0a 58 53 |o graysc|ale.X.XS|
|000010c0| 74 61 74 75 73 0a 58 0a | 58 20 20 20 20 42 65 74 |tatus.X.|X Bet|
|000010d0| 61 20 74 65 73 74 20 72 | 65 6c 65 61 73 65 2c 20 |a test r|elease, |
|000010e0| 30 2e 39 2e 20 20 22 55 | 73 65 20 61 74 20 79 6f |0.9. "U|se at yo|
|000010f0| 75 72 20 6f 77 6e 20 72 | 69 73 6b 2c 20 62 75 67 |ur own r|isk, bug|
|00001100| 20 66 69 78 65 73 20 6e | 6f 74 0a 58 20 20 20 20 | fixes n|ot.X |
|00001110| 67 75 61 72 61 6e 74 65 | 65 64 2c 20 62 65 20 68 |guarante|ed, be h|
|00001120| 61 70 70 79 20 77 69 74 | 68 20 6d 69 6e 69 6d 61 |appy wit|h minima|
|00001130| 6c 20 64 6f 63 75 6d 65 | 6e 74 61 74 69 6f 6e 2e |l docume|ntation.|
|00001140| 22 20 20 42 75 67 73 20 | 72 65 70 6f 72 74 65 64 |" Bugs |reported|
|00001150| 0a 58 20 20 20 20 73 6f | 20 66 61 72 20 68 61 76 |.X so| far hav|
|00001160| 65 20 62 65 65 6e 20 66 | 69 78 65 64 2e 0a 58 0a |e been f|ixed..X.|
|00001170| 58 20 20 20 20 46 72 65 | 65 6c 79 20 61 76 61 69 |X Fre|ely avai|
|00001180| 6c 61 62 6c 65 20 66 6f | 72 20 75 73 65 2c 20 72 |lable fo|r use, r|
|00001190| 65 64 69 73 74 72 69 62 | 75 74 69 6f 6e 2c 20 69 |edistrib|ution, i|
|000011a0| 6e 63 6f 72 70 6f 72 61 | 74 69 6f 6e 20 69 6e 74 |ncorpora|tion int|
|000011b0| 6f 0a 58 20 20 20 20 6f | 74 68 65 72 20 63 6f 64 |o.X o|ther cod|
|000011c0| 65 2e 20 20 4a 75 73 74 | 20 64 6f 6e 27 74 20 6d |e. Just| don't m|
|000011d0| 61 6b 65 20 61 20 70 72 | 6f 66 69 74 20 6f 66 66 |ake a pr|ofit off|
|000011e0| 20 69 74 20 6f 72 20 74 | 61 6b 65 20 6d 79 20 6e | it or t|ake my n|
|000011f0| 61 6d 65 0a 58 20 20 20 | 20 6f 66 66 20 6f 66 20 |ame.X | off of |
|00001200| 69 74 2e 0a 58 0a 58 20 | 20 20 20 57 72 69 74 74 |it..X.X | Writt|
|00001210| 65 6e 20 69 6e 20 43 20 | 66 6f 72 20 42 53 44 20 |en in C |for BSD |
|00001220| 61 6e 64 20 4d 61 63 68 | 20 55 6e 69 78 20 53 79 |and Mach| Unix Sy|
|00001230| 73 74 65 6d 73 2e 0a 58 | 20 20 20 20 54 65 73 74 |stems..X| Test|
|00001240| 65 64 20 6f 6e 20 56 61 | 78 65 73 2c 20 53 75 6e |ed on Va|xes, Sun|
|00001250| 20 57 6f 72 6b 73 74 61 | 74 69 6f 6e 73 2c 20 49 | Worksta|tions, I|
|00001260| 42 4d 20 52 54 73 20 61 | 6e 64 20 50 79 72 61 6d |BM RTs a|nd Pyram|
|00001270| 69 64 73 2e 0a 58 20 20 | 20 20 0a 58 20 20 20 20 |ids..X | .X |
|00001280| 53 65 6c 66 20 63 6f 6e | 74 61 69 6e 65 64 2e 20 |Self con|tained. |
|00001290| 20 44 6f 65 73 20 6e 6f | 74 20 72 65 71 75 69 72 | Does no|t requir|
|000012a0| 65 20 53 75 6e 20 69 6e | 63 6c 75 64 65 20 66 69 |e Sun in|clude fi|
|000012b0| 6c 65 73 20 6f 72 20 6c | 69 62 72 61 72 79 0a 58 |les or l|ibrary.X|
|000012c0| 20 20 20 20 72 6f 75 74 | 69 6e 65 73 20 74 6f 20 | rout|ines to |
|000012d0| 6d 61 6e 69 70 75 6c 61 | 74 65 20 53 75 6e 20 72 |manipula|te Sun r|
|000012e0| 61 73 74 65 72 73 2e 0a | 58 0a 58 41 76 61 69 6c |asters..|X.XAvail|
|000012f0| 61 62 69 6c 69 74 79 0a | 58 0a 58 20 20 20 20 41 |ability.|X.X A|
|00001300| 6e 6f 6e 79 6d 6f 75 73 | 20 46 54 50 0a 58 0a 58 |nonymous| FTP.X.X|
|00001310| 20 20 20 20 48 6f 73 74 | 3a 09 6e 6c 2e 63 73 2e | Host|:.nl.cs.|
|00001320| 63 6d 75 2e 65 64 75 20 | 28 31 32 38 2e 32 2e 32 |cmu.edu |(128.2.2|
|00001330| 32 32 2e 35 36 29 0a 58 | 20 20 20 20 55 73 65 72 |22.56).X| User|
|00001340| 3a 09 61 6e 6f 6e 79 6d | 6f 75 73 0a 58 20 20 20 |:.anonym|ous.X |
|00001350| 20 50 61 73 73 77 6f 72 | 64 3a 09 6e 61 6d 65 40 | Passwor|d:.name@|
|00001360| 73 69 74 65 0a 58 20 20 | 20 20 44 69 72 65 63 74 |site.X | Direct|
|00001370| 6f 72 79 3a 09 2f 75 73 | 72 2f 6d 6c 6d 2f 66 74 |ory:./us|r/mlm/ft|
|00001380| 70 2f 0a 58 20 20 20 20 | 46 69 6c 65 6e 61 6d 65 |p/.X |Filename|
|00001390| 3a 09 66 62 6d 2e 74 61 | 72 2e 5a 0a 58 20 20 20 |:.fbm.ta|r.Z.X |
|000013a0| 20 54 72 61 6e 73 66 65 | 72 3a 09 27 69 6d 61 67 | Transfe|r:.'imag|
|000013b0| 65 27 0a 58 0a 58 20 20 | 20 20 4e 6f 74 65 3a 20 |e'.X.X | Note: |
|000013c0| 79 6f 75 20 6d 75 73 74 | 20 27 63 64 27 20 74 6f |you must| 'cd' to|
|000013d0| 20 2f 75 73 72 2f 6d 6c | 6d 2f 66 74 70 20 64 69 | /usr/ml|m/ftp di|
|000013e0| 72 65 63 74 6c 79 2c 20 | 79 6f 75 20 63 61 6e 6e |rectly, |you cann|
|000013f0| 6f 74 20 61 63 63 65 73 | 73 0a 58 20 20 20 20 65 |ot acces|s.X e|
|00001400| 69 74 68 65 72 20 2f 75 | 73 72 2c 20 6f 72 20 2f |ither /u|sr, or /|
|00001410| 75 73 72 2f 6d 6c 6d 20 | 61 6c 6f 6e 65 2e 20 20 |usr/mlm |alone. |
|00001420| 44 6f 6e 27 74 20 66 6f | 72 67 65 74 20 74 6f 20 |Don't fo|rget to |
|00001430| 73 70 65 63 69 66 79 20 | 27 69 6d 61 67 65 27 0a |specify |'image'.|
|00001440| 58 20 20 20 20 66 6f 72 | 6d 61 74 20 74 72 61 6e |X for|mat tran|
|00001450| 73 66 65 72 2e 0a 58 0a | 58 20 20 20 20 57 69 6c |sfer..X.|X Wil|
|00001460| 6c 20 62 65 20 70 6f 73 | 74 65 64 20 74 6f 20 55 |l be pos|ted to U|
|00001470| 73 65 4e 65 74 20 77 68 | 65 6e 20 74 68 65 20 63 |seNet wh|en the c|
|00001480| 6f 64 65 20 69 73 20 73 | 74 61 62 6c 65 20 61 6e |ode is s|table an|
|00001490| 64 0a 58 20 20 20 20 74 | 68 65 20 64 6f 63 75 6d |d.X t|he docum|
|000014a0| 65 6e 74 61 74 69 6f 6e | 20 69 73 20 63 6f 6d 70 |entation| is comp|
|000014b0| 6c 65 74 65 20 61 6e 64 | 20 61 63 63 75 72 61 74 |lete and| accurat|
|000014c0| 65 2e 0a 58 0a 58 41 63 | 6b 6e 6f 77 6c 65 64 67 |e..X.XAc|knowledg|
|000014d0| 65 6d 65 6e 74 73 0a 58 | 0a 58 20 20 20 20 47 49 |ements.X|.X GI|
|000014e0| 46 20 72 65 61 64 20 73 | 75 70 70 6f 72 74 20 77 |F read s|upport w|
|000014f0| 72 69 74 74 65 6e 20 62 | 79 20 44 61 76 69 64 20 |ritten b|y David |
|00001500| 4b 6f 62 6c 61 73 2e 0a | 58 20 20 20 20 47 49 46 |Koblas..|X GIF|
|00001510| 20 77 72 69 74 65 20 73 | 75 70 70 6f 72 74 20 77 | write s|upport w|
|00001520| 72 69 74 74 65 6e 20 62 | 79 20 44 61 76 69 64 20 |ritten b|y David |
|00001530| 52 6f 77 6c 65 79 2e 0a | 58 20 20 20 20 53 6f 6d |Rowley..|X Som|
|00001540| 65 20 49 46 46 20 63 6f | 64 65 20 62 79 20 4a 65 |e IFF co|de by Je|
|00001550| 72 72 79 20 4d 6f 72 72 | 69 73 6f 6e 20 61 6e 64 |rry Morr|ison and|
|00001560| 20 53 74 65 76 65 20 53 | 68 61 77 20 6f 66 20 45 | Steve S|haw of E|
|00001570| 6c 65 63 74 72 6f 6e 69 | 63 20 41 72 74 73 2e 0a |lectroni|c Arts..|
|00001580| 58 20 20 20 20 45 64 67 | 65 20 64 65 74 65 63 74 |X Edg|e detect|
|00001590| 69 6f 6e 20 61 6e 64 20 | 70 69 78 65 6c 20 63 6c |ion and |pixel cl|
|000015a0| 65 61 6e 69 6e 67 20 62 | 79 20 47 61 72 79 20 53 |eaning b|y Gary S|
|000015b0| 68 65 72 77 69 6e 20 61 | 6e 64 20 4d 69 63 68 61 |herwin a|nd Micha|
|000015c0| 65 6c 20 4d 61 75 6c 64 | 69 6e 0a 58 0a 58 52 75 |el Mauld|in.X.XRu|
|000015d0| 6d 6f 75 72 73 0a 58 0a | 58 20 20 20 20 46 75 74 |mours.X.|X Fut|
|000015e0| 75 72 65 20 73 75 70 70 | 6f 72 74 20 69 73 20 72 |ure supp|ort is r|
|000015f0| 75 6d 6f 75 72 65 64 20 | 66 6f 72 20 54 49 46 46 |umoured |for TIFF|
|00001600| 20 66 69 6c 65 73 20 61 | 6e 64 20 4d 61 63 50 61 | files a|nd MacPa|
|00001610| 69 6e 74 20 66 69 6c 65 | 73 2e 20 20 41 6c 73 6f |int file|s. Also|
|00001620| 20 69 74 0a 58 20 20 20 | 20 6d 61 79 20 73 6f 6d | it.X | may som|
|00001630| 65 64 61 79 20 62 65 20 | 61 62 6c 65 20 74 6f 20 |eday be |able to |
|00001640| 77 72 69 74 65 20 61 6c | 6c 20 6f 66 20 74 68 65 |write al|l of the|
|00001650| 20 66 6f 72 6d 61 74 73 | 20 74 68 61 74 20 69 74 | formats| that it|
|00001660| 20 63 61 6e 20 72 65 61 | 64 2e 0a 58 0a 58 20 20 | can rea|d..X.X |
|00001670| 20 20 41 6c 6c 20 74 68 | 61 74 20 69 73 20 6e 65 | All th|at is ne|
|00001680| 65 64 65 64 20 74 6f 20 | 69 6e 63 6f 72 70 6f 72 |eded to |incorpor|
|00001690| 61 74 65 20 61 20 6e 65 | 77 20 66 6f 72 6d 61 74 |ate a ne|w format|
|000016a0| 20 69 73 20 74 6f 20 77 | 72 69 74 65 20 61 20 72 | is to w|rite a r|
|000016b0| 6f 75 74 69 6e 65 0a 58 | 20 20 20 20 74 68 61 74 |outine.X| that|
|000016c0| 20 72 65 61 64 73 20 74 | 68 65 20 67 69 76 65 6e | reads t|he given|
|000016d0| 20 69 6d 61 67 65 20 69 | 6e 74 6f 20 6d 65 6d 6f | image i|nto memo|
|000016e0| 72 79 20 61 6e 64 20 6f | 6e 65 20 74 68 61 74 20 |ry and o|ne that |
|000016f0| 77 72 69 74 65 73 20 69 | 74 20 6f 75 74 0a 58 20 |writes i|t out.X |
|00001700| 20 20 20 61 67 61 69 6e | 2e 20 20 49 20 77 69 6c | again|. I wil|
|00001710| 6c 20 69 6e 63 6f 72 70 | 6f 72 61 74 65 20 6f 74 |l incorp|orate ot|
|00001720| 68 65 72 20 63 6f 64 65 | 20 6f 6e 20 61 20 22 77 |her code| on a "w|
|00001730| 68 65 6e 65 76 65 72 20 | 49 27 6d 20 6e 6f 74 20 |henever |I'm not |
|00001740| 77 6f 72 6b 69 6e 67 0a | 58 20 20 20 20 6f 6e 20 |working.|X on |
|00001750| 6d 79 20 74 68 65 73 69 | 73 22 20 62 61 73 69 73 |my thesi|s" basis|
|00001760| 2e 0a 58 0a 58 4d 69 63 | 68 61 65 6c 20 4c 2e 20 |..X.XMic|hael L. |
|00001770| 4d 61 75 6c 64 69 6e 20 | 28 46 75 7a 7a 79 29 09 |Mauldin |(Fuzzy).|
|00001780| 09 53 63 68 6f 6f 6c 20 | 6f 66 20 43 6f 6d 70 75 |.School |of Compu|
|00001790| 74 65 72 20 53 63 69 65 | 6e 63 65 0a 58 41 52 50 |ter Scie|nce.XARP|
|000017a0| 41 3a 20 4d 69 63 68 61 | 65 6c 2e 4d 61 75 6c 64 |A: Micha|el.Mauld|
|000017b0| 69 6e 40 4e 4c 2e 43 53 | 2e 43 4d 55 2e 45 44 55 |in@NL.CS|.CMU.EDU|
|000017c0| 09 43 61 72 6e 65 67 69 | 65 20 4d 65 6c 6c 6f 6e |.Carnegi|e Mellon|
|000017d0| 20 55 6e 69 76 65 72 73 | 69 74 79 0a 58 50 68 6f | Univers|ity.XPho|
|000017e0| 6e 65 3a 20 28 34 31 32 | 29 20 32 36 38 2d 33 30 |ne: (412|) 268-30|
|000017f0| 36 35 09 09 09 50 69 74 | 74 73 62 75 72 67 68 2c |65...Pit|tsburgh,|
|00001800| 20 50 41 20 20 31 35 32 | 31 33 2d 33 38 39 30 0a | PA 152|13-3890.|
|00001810| 45 4e 44 5f 4f 46 5f 46 | 49 4c 45 0a 69 66 20 74 |END_OF_F|ILE.if t|
|00001820| 65 73 74 20 34 39 35 30 | 20 2d 6e 65 20 60 77 63 |est 4950| -ne `wc|
|00001830| 20 2d 63 20 3c 27 46 65 | 61 74 75 72 65 73 27 60 | -c <'Fe|atures'`|
|00001840| 3b 20 74 68 65 6e 0a 20 | 20 20 20 65 63 68 6f 20 |; then. | echo |
|00001850| 73 68 61 72 3a 20 5c 22 | 27 46 65 61 74 75 72 65 |shar: \"|'Feature|
|00001860| 73 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |s'\" unp|acked wi|
|00001870| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00001880| 69 0a 23 20 65 6e 64 20 | 6f 66 20 27 46 65 61 74 |i.# end |of 'Feat|
|00001890| 75 72 65 73 27 0a 66 69 | 0a 69 66 20 74 65 73 74 |ures'.fi|.if test|
|000018a0| 20 2d 66 20 27 66 62 68 | 61 6c 66 2e 31 27 20 2d | -f 'fbh|alf.1' -|
|000018b0| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|000018c0| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|000018d0| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|000018e0| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|000018f0| 66 69 6c 65 20 5c 22 27 | 66 62 68 61 6c 66 2e 31 |file \"'|fbhalf.1|
|00001900| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00001910| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00001920| 22 27 66 62 68 61 6c 66 | 2e 31 27 5c 22 20 5c 28 |"'fbhalf|.1'\" \(|
|00001930| 33 35 39 37 20 63 68 61 | 72 61 63 74 65 72 73 5c |3597 cha|racters\|
|00001940| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|00001950| 27 66 62 68 61 6c 66 2e | 31 27 20 3c 3c 27 45 4e |'fbhalf.|1' <<'EN|
|00001960| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2e 54 48 20 |D_OF_FIL|E'.X.TH |
|00001970| 46 42 48 41 4c 46 20 31 | 20 30 37 2d 4d 61 72 2d |FBHALF 1| 07-Mar-|
|00001980| 38 39 0a 58 2e 43 4d 20 | 33 0a 58 2e 53 48 20 4e |89.X.CM |3.X.SH N|
|00001990| 41 4d 45 0a 58 66 62 68 | 61 6c 66 20 5c 2d 20 68 |AME.Xfbh|alf \- h|
|000019a0| 61 6c 66 74 6f 6e 65 20 | 61 20 67 72 61 79 73 63 |alftone |a graysc|
|000019b0| 61 6c 65 20 69 6d 61 67 | 65 0a 58 2e 53 48 20 53 |ale imag|e.X.SH S|
|000019c0| 59 4e 4f 50 53 49 53 0a | 58 2e 6e 66 0a 58 66 62 |YNOPSIS.|X.nf.Xfb|
|000019d0| 68 61 6c 66 20 5b 20 2d | 66 62 63 74 3c 70 61 72 |half [ -|fbct<par|
|000019e0| 6d 3e 20 5d 20 5b 2d 73 | 3c 73 68 61 72 70 65 6e |m> ] [-s|<sharpen|
|000019f0| 3e 20 5d 20 5b 20 2d 43 | 3c 63 6c 65 61 6e 3e 20 |> ] [ -C|<clean> |
|00001a00| 2d 4e 3c 6e 62 72 3e 5d | 0a 58 20 20 20 20 20 20 |-N<nbr>]|.X |
|00001a10| 20 5b 20 2d 3c 74 79 70 | 65 3e 20 5d 20 5b 20 73 | [ -<typ|e> ] [ s|
|00001a20| 69 7a 65 20 5d 20 3c 20 | 38 62 69 74 20 3e 20 31 |ize ] < |8bit > 1|
|00001a30| 62 69 74 0a 58 2e 66 69 | 0a 58 2e 53 48 20 44 45 |bit.X.fi|.X.SH DE|
|00001a40| 53 43 52 49 50 54 49 4f | 4e 0a 58 2e 50 50 0a 58 |SCRIPTIO|N.X.PP.X|
|00001a50| 48 61 6c 66 74 6f 6e 65 | 73 20 74 68 65 20 38 20 |Halftone|s the 8 |
|00001a60| 62 69 74 20 69 6d 61 67 | 65 73 20 61 6e 64 20 70 |bit imag|es and p|
|00001a70| 72 6f 64 75 63 65 73 20 | 61 20 70 62 6d 20 66 6f |roduces |a pbm fo|
|00001a80| 72 6d 61 74 20 6f 75 74 | 70 75 74 2e 20 20 54 68 |rmat out|put. Th|
|00001a90| 65 72 65 20 61 72 65 0a | 58 66 6f 75 72 20 68 61 |ere are.|Xfour ha|
|00001aa0| 6c 66 74 6f 6e 69 6e 67 | 20 61 6c 67 6f 72 69 74 |lftoning| algorit|
|00001ab0| 68 6d 73 20 61 76 61 69 | 6c 61 62 6c 65 3a 20 55 |hms avai|lable: U|
|00001ac0| 6c 69 63 68 6e 65 79 27 | 73 20 22 62 6c 75 65 20 |lichney'|s "blue |
|00001ad0| 6e 6f 69 73 65 22 0a 58 | 64 69 74 68 65 72 69 6e |noise".X|ditherin|
|00001ae0| 67 2c 20 20 46 6c 6f 79 | 64 2d 53 74 65 69 6e 62 |g, Floy|d-Steinb|
|00001af0| 65 72 67 20 64 69 74 68 | 65 72 69 6e 67 2c 20 4a |erg dith|ering, J|
|00001b00| 61 72 76 69 73 20 65 74 | 20 61 6c 27 73 0a 58 22 |arvis et| al's.X"|
|00001b10| 63 6f 6e 73 74 72 61 69 | 6e 65 64 20 61 76 65 72 |constrai|ned aver|
|00001b20| 61 67 69 6e 67 22 2c 20 | 61 6e 64 20 73 69 6d 70 |aging", |and simp|
|00001b30| 6c 65 20 74 68 65 73 68 | 68 6f 6c 64 69 6e 67 2e |le thesh|holding.|
|00001b40| 0a 58 54 68 65 20 64 65 | 66 61 75 6c 74 20 69 73 |.XThe de|fault is|
|00001b50| 20 62 6c 75 65 20 6e 6f | 69 73 65 2c 20 62 75 74 | blue no|ise, but|
|00001b60| 20 63 6f 6e 73 74 72 61 | 69 6e 65 64 0a 58 61 76 | constra|ined.Xav|
|00001b70| 65 72 61 67 69 6e 67 20 | 77 6f 72 6b 73 20 62 65 |eraging |works be|
|00001b80| 74 74 65 72 20 6f 6e 20 | 6c 69 6e 65 20 64 72 61 |tter on |line dra|
|00001b90| 77 69 6e 67 73 20 61 6e | 64 20 73 63 61 6e 6e 65 |wings an|d scanne|
|00001ba0| 64 20 74 65 78 74 20 28 | 77 69 74 68 20 68 69 67 |d text (|with hig|
|00001bb0| 68 0a 58 76 61 6c 75 65 | 73 20 6f 66 20 67 61 6d |h.Xvalue|s of gam|
|00001bc0| 6d 61 20 5c 2d 20 6e 65 | 61 72 20 32 30 29 2e 20 |ma \- ne|ar 20). |
|00001bd0| 20 46 6f 72 20 73 6f 6d | 65 20 69 6d 61 67 65 73 | For som|e images|
|00001be0| 2c 20 46 6c 6f 79 64 2d | 53 74 65 69 6e 62 65 72 |, Floyd-|Steinber|
|00001bf0| 67 20 67 69 76 65 73 20 | 61 0a 58 74 69 67 68 74 |g gives |a.Xtight|
|00001c00| 65 72 2c 20 6d 6f 72 65 | 20 70 6c 65 61 73 69 6e |er, more| pleasin|
|00001c10| 67 20 70 61 74 74 65 72 | 6e 20 74 68 61 6e 20 62 |g patter|n than b|
|00001c20| 6c 75 65 20 6e 6f 69 73 | 65 2c 20 62 75 74 20 62 |lue nois|e, but b|
|00001c30| 6c 75 65 20 6e 6f 69 73 | 65 20 69 73 20 6d 6f 72 |lue nois|e is mor|
|00001c40| 65 0a 58 72 6f 62 75 73 | 74 20 61 6e 64 20 66 61 |e.Xrobus|t and fa|
|00001c50| 72 20 6c 65 73 73 20 6c | 69 6b 65 6c 79 20 74 6f |r less l|ikely to|
|00001c60| 20 70 72 6f 64 75 63 65 | 20 73 69 67 6e 69 66 69 | produce| signifi|
|00001c70| 63 61 6e 74 20 61 72 74 | 69 66 61 63 74 73 2e 0a |cant art|ifacts..|
|00001c80| 58 2e 73 70 0a 58 54 68 | 65 20 73 69 7a 65 20 61 |X.sp.XTh|e size a|
|00001c90| 72 67 75 6d 65 6e 74 20 | 69 73 20 61 20 6d 61 78 |rgument |is a max|
|00001ca0| 69 6d 75 6d 20 6e 75 6d | 62 65 72 20 6f 66 20 70 |imum num|ber of p|
|00001cb0| 69 78 65 6c 73 2e 20 20 | 49 66 20 67 69 76 65 6e |ixels. |If given|
|00001cc0| 2c 0a 58 2e 49 20 66 62 | 68 61 6c 66 0a 58 77 69 |,.X.I fb|half.Xwi|
|00001cd0| 6c 6c 20 72 65 73 69 7a | 65 20 74 68 65 20 69 6d |ll resiz|e the im|
|00001ce0| 61 67 65 20 73 6f 20 74 | 68 65 20 77 69 64 74 68 |age so t|he width|
|00001cf0| 20 69 73 20 74 68 65 20 | 6c 61 72 67 65 73 74 20 | is the |largest |
|00001d00| 6d 75 6c 74 69 70 6c 65 | 20 6f 66 20 38 20 73 75 |multiple| of 8 su|
|00001d10| 63 68 0a 58 74 68 61 74 | 20 74 68 65 20 77 69 64 |ch.Xthat| the wid|
|00001d20| 74 68 20 74 69 6d 65 73 | 20 74 68 65 20 68 65 69 |th times| the hei|
|00001d30| 67 68 74 20 69 73 20 6c | 65 73 73 20 74 68 61 6e |ght is l|ess than|
|00001d40| 20 6f 72 20 65 71 75 61 | 6c 20 74 6f 20 74 68 65 | or equa|l to the|
|00001d50| 20 73 70 65 63 69 66 69 | 65 64 0a 58 73 69 7a 65 | specifi|ed.Xsize|
|00001d60| 2e 20 20 54 68 65 20 64 | 65 66 61 75 6c 74 20 69 |. The d|efault i|
|00001d70| 73 20 74 6f 20 70 72 6f | 64 75 63 65 20 6f 75 74 |s to pro|duce out|
|00001d80| 70 75 74 20 74 68 65 20 | 73 61 6d 65 20 73 69 7a |put the |same siz|
|00001d90| 65 20 61 73 20 74 68 65 | 20 69 6e 70 75 74 2e 0a |e as the| input..|
|00001da0| 58 2e 53 48 20 4f 50 54 | 49 4f 4e 53 0a 58 2e 54 |X.SH OPT|IONS.X.T|
|00001db0| 50 0a 58 2e 42 52 20 2d | 66 0a 58 2e 49 20 46 6c |P.X.BR -|f.X.I Fl|
|00001dc0| 6f 79 64 2d 53 74 65 69 | 6e 62 65 72 67 0a 58 68 |oyd-Stei|nberg.Xh|
|00001dd0| 61 6c 66 74 6f 6e 69 6e | 67 2e 20 20 55 73 69 6e |alftonin|g. Usin|
|00001de0| 67 20 37 2d 35 2d 33 2d | 31 20 77 65 69 67 68 74 |g 7-5-3-|1 weight|
|00001df0| 73 2e 0a 58 2e 54 50 0a | 58 2e 42 52 20 2d 62 3c |s..X.TP.|X.BR -b<|
|00001e00| 6e 6f 69 73 65 3e 0a 58 | 2e 49 20 42 6c 75 65 20 |noise>.X|.I Blue |
|00001e10| 6e 6f 69 73 65 2c 0a 58 | 77 69 74 68 20 3c 6e 6f |noise,.X|with <no|
|00001e20| 69 73 65 3e 20 70 65 72 | 63 65 6e 74 20 72 61 6e |ise> per|cent ran|
|00001e30| 64 6f 6d 20 77 65 69 67 | 68 74 73 2e 20 20 41 73 |dom weig|hts. As|
|00001e40| 20 70 65 72 20 52 6f 62 | 65 72 74 20 55 6c 69 63 | per Rob|ert Ulic|
|00001e50| 68 6e 65 79 27 73 20 50 | 68 44 0a 58 74 68 65 73 |hney's P|hD.Xthes|
|00001e60| 69 73 2e 0a 58 2e 54 50 | 0a 58 2e 42 52 20 2d 63 |is..X.TP|.X.BR -c|
|00001e70| 3c 67 61 6d 6d 61 3e 0a | 58 2e 49 20 63 6f 6e 73 |<gamma>.|X.I cons|
|00001e80| 74 72 61 69 6e 65 64 2d | 61 76 65 72 61 67 65 0a |trained-|average.|
|00001e90| 58 68 61 6c 66 74 6f 6e | 69 6e 67 2e 20 20 41 73 |Xhalfton|ing. As|
|00001ea0| 20 70 65 72 20 4a 61 72 | 76 69 73 2e 20 20 47 6f | per Jar|vis. Go|
|00001eb0| 6f 64 20 66 6f 72 20 6c | 69 6e 65 20 64 72 61 77 |od for l|ine draw|
|00001ec0| 69 6e 67 73 20 61 6e 64 | 20 67 72 61 70 68 69 63 |ings and| graphic|
|00001ed0| 20 61 72 74 0a 58 77 69 | 74 68 20 61 20 67 61 6d | art.Xwi|th a gam|
|00001ee0| 6d 61 20 6f 66 20 61 62 | 6f 75 74 20 32 30 2e 0a |ma of ab|out 20..|
|00001ef0| 58 2e 54 50 0a 58 2e 42 | 52 20 2d 74 3c 74 68 72 |X.TP.X.B|R -t<thr|
|00001f00| 65 73 68 68 6f 6c 64 3e | 0a 58 2e 49 20 46 6c 6f |eshhold>|.X.I Flo|
|00001f10| 79 64 2d 73 69 6d 70 6c | 65 20 74 68 72 65 73 68 |yd-simpl|e thresh|
|00001f20| 68 6f 6c 64 69 6e 67 2c | 0a 58 70 69 78 65 6c 73 |holding,|.Xpixels|
|00001f30| 20 67 72 65 61 74 65 72 | 20 74 68 61 6e 20 3c 74 | greater| than <t|
|00001f40| 68 72 65 73 68 68 6f 6c | 64 3e 20 61 72 65 20 73 |hreshhol|d> are s|
|00001f50| 65 74 20 74 6f 20 77 68 | 69 74 65 2c 0a 58 61 6e |et to wh|ite,.Xan|
|00001f60| 64 20 74 68 6f 73 65 20 | 6c 65 73 73 20 74 68 61 |d those |less tha|
|00001f70| 6e 20 6f 72 20 65 71 75 | 61 6c 20 74 6f 20 3c 74 |n or equ|al to <t|
|00001f80| 68 72 65 73 68 68 6f 6c | 64 3e 20 61 72 65 20 73 |hreshhol|d> are s|
|00001f90| 65 74 20 74 6f 20 62 6c | 61 63 6b 2e 0a 58 2e 54 |et to bl|ack..X.T|
|00001fa0| 50 0a 58 2e 42 52 20 3c | 73 69 7a 65 3e 0a 58 2e |P.X.BR <|size>.X.|
|00001fb0| 49 20 6e 75 6d 62 65 72 | 20 6f 66 20 70 69 78 65 |I number| of pixe|
|00001fc0| 6c 73 2c 0a 58 73 70 65 | 63 69 66 69 65 73 20 61 |ls,.Xspe|cifies a|
|00001fd0| 20 64 65 73 69 72 65 64 | 20 6e 75 6d 62 65 72 20 | desired| number |
|00001fe0| 6f 66 20 6f 75 74 70 75 | 74 20 70 69 78 65 6c 73 |of outpu|t pixels|
|00001ff0| 2e 0a 58 54 68 65 20 61 | 63 74 75 61 6c 20 73 69 |..XThe a|ctual si|
|00002000| 7a 65 20 75 73 65 64 20 | 77 69 6c 6c 20 68 61 76 |ze used |will hav|
|00002010| 65 20 61 6e 20 61 73 70 | 65 63 74 20 72 61 74 69 |e an asp|ect rati|
|00002020| 6f 20 6f 66 20 31 2e 30 | 20 61 6e 64 20 61 20 77 |o of 1.0| and a w|
|00002030| 69 64 74 68 20 77 68 69 | 63 68 0a 58 69 73 20 74 |idth whi|ch.Xis t|
|00002040| 68 65 20 6c 61 72 67 65 | 73 74 20 70 6f 73 73 69 |he large|st possi|
|00002050| 62 6c 65 20 6d 75 6c 74 | 69 70 6c 65 20 6f 66 20 |ble mult|iple of |
|00002060| 38 20 73 6f 20 74 68 61 | 74 20 74 68 65 20 69 6d |8 so tha|t the im|
|00002070| 61 67 65 20 68 61 73 20 | 6c 65 73 73 20 74 68 61 |age has |less tha|
|00002080| 6e 0a 58 6f 72 20 65 71 | 75 61 6c 20 74 68 65 20 |n.Xor eq|ual the |
|00002090| 73 70 65 63 69 66 69 65 | 64 20 6e 75 6d 62 65 72 |specifie|d number|
|000020a0| 20 6f 66 20 70 69 78 65 | 6c 73 2e 0a 58 54 68 69 | of pixe|ls..XThi|
|000020b0| 73 20 69 73 20 61 20 70 | 6f 73 69 74 69 6f 6e 61 |s is a p|ositiona|
|000020c0| 6c 20 61 72 67 75 6d 65 | 6e 74 2e 0a 58 2e 54 50 |l argume|nt..X.TP|
|000020d0| 0a 58 2e 42 52 20 2d 73 | 3c 62 65 74 61 3e 0a 58 |.X.BR -s|<beta>.X|
|000020e0| 2e 49 20 73 68 61 72 70 | 65 6e 69 6e 67 2c 0a 58 |.I sharp|ening,.X|
|000020f0| 73 70 65 63 69 66 69 65 | 73 20 61 20 63 65 72 74 |specifie|s a cert|
|00002100| 61 69 6e 20 61 6d 6f 75 | 6e 74 20 6f 66 20 73 68 |ain amou|nt of sh|
|00002110| 61 72 70 65 6e 69 6e 67 | 20 61 66 74 65 72 20 72 |arpening| after r|
|00002120| 65 73 69 7a 69 6e 67 20 | 62 75 74 0a 58 62 65 66 |esizing |but.Xbef|
|00002130| 6f 72 65 20 68 61 6c 66 | 74 6f 6e 69 6e 67 2e 20 |ore half|toning. |
|00002140| 20 54 68 65 20 64 65 66 | 61 75 6c 74 20 69 73 20 | The def|ault is |
|00002150| 6e 6f 20 73 68 61 72 70 | 65 6e 69 6e 67 2e 0a 58 |no sharp|ening..X|
|00002160| 2e 54 50 0a 58 2e 42 52 | 20 2d 43 3c 6e 75 6d 3e |.TP.X.BR| -C<num>|
|00002170| 2c 20 2d 4e 3c 6e 75 6d | 3e 0a 58 2e 49 20 63 6c |, -N<num|>.X.I cl|
|00002180| 65 61 6e 0a 58 69 6d 61 | 67 65 20 62 79 20 66 6c |ean.Xima|ge by fl|
|00002190| 69 70 70 69 6e 67 20 69 | 73 6f 6c 61 74 65 64 20 |ipping i|solated |
|000021a0| 70 69 78 65 6c 73 2e 20 | 20 41 20 70 69 78 65 6c |pixels. | A pixel|
|000021b0| 20 69 73 20 69 73 6f 6c | 61 74 65 64 20 69 66 20 | is isol|ated if |
|000021c0| 74 68 65 72 65 20 61 72 | 65 0a 58 66 77 65 72 20 |there ar|e.Xfwer |
|000021d0| 74 68 61 6e 20 43 20 6c | 69 6b 65 20 63 6f 6c 6f |than C l|ike colo|
|000021e0| 72 65 64 20 70 69 78 65 | 6c 73 20 69 6e 20 74 68 |red pixe|ls in th|
|000021f0| 65 20 6e 65 61 72 62 79 | 20 4e 78 4e 20 73 71 75 |e nearby| NxN squ|
|00002200| 61 72 65 2e 20 20 54 68 | 69 73 20 6f 70 74 69 6f |are. Th|is optio|
|00002210| 6e 0a 58 63 61 6e 20 67 | 65 74 20 72 69 64 20 6f |n.Xcan g|et rid o|
|00002220| 66 20 22 73 6e 6f 77 22 | 20 69 6e 20 6c 69 6e 65 |f "snow"| in line|
|00002230| 20 61 72 74 20 69 6d 61 | 67 65 73 20 68 61 6c 66 | art ima|ges half|
|00002240| 74 6f 6e 65 64 20 62 79 | 20 74 68 65 20 4a 61 72 |toned by| the Jar|
|00002250| 76 69 73 0a 58 63 6f 6e | 73 74 72 61 69 6e 65 64 |vis.Xcon|strained|
|00002260| 20 69 6d 61 67 65 20 68 | 61 6c 66 74 6f 6e 69 6e | image h|alftonin|
|00002270| 67 2e 0a 58 2e 54 50 0a | 58 2e 42 52 20 2d 42 0a |g..X.TP.|X.BR -B.|
|00002280| 58 2e 49 20 66 61 63 65 | 0a 58 66 6f 72 6d 61 74 |X.I face|.Xformat|
|00002290| 2c 20 61 73 20 75 73 65 | 64 20 62 79 20 42 65 6e |, as use|d by Ben|
|000022a0| 6e 65 74 20 59 65 65 27 | 73 0a 58 2e 49 20 66 61 |net Yee'|s.X.I fa|
|000022b0| 63 65 0a 58 70 72 6f 67 | 72 61 6d 20 61 74 20 43 |ce.Xprog|ram at C|
|000022c0| 4d 55 2e 20 0a 58 2e 54 | 50 0a 58 2e 42 52 20 2d |MU. .X.T|P.X.BR -|
|000022d0| 46 0a 58 2e 49 20 46 42 | 4d 2c 0a 58 66 6f 72 6d |F.X.I FB|M,.Xform|
|000022e0| 61 74 20 28 62 79 20 64 | 65 66 61 75 6c 74 2c 20 |at (by d|efault, |
|000022f0| 74 68 65 20 64 65 66 61 | 75 6c 74 29 2e 20 20 59 |the defa|ult). Y|
|00002300| 6f 75 20 61 72 65 20 67 | 75 61 72 61 6e 74 65 65 |ou are g|uarantee|
|00002310| 64 20 6e 6f 74 0a 58 74 | 6f 20 6c 6f 73 65 20 69 |d not.Xt|o lose i|
|00002320| 6e 66 6f 72 6d 61 74 69 | 6f 6e 20 62 79 20 73 70 |nformati|on by sp|
|00002330| 65 63 69 66 79 69 6e 67 | 20 46 42 4d 20 61 73 20 |ecifying| FBM as |
|00002340| 74 68 65 20 64 65 66 61 | 75 6c 74 2e 0a 58 2e 54 |the defa|ult..X.T|
|00002350| 50 0a 58 2e 42 52 20 2d | 47 0a 58 2e 49 20 47 49 |P.X.BR -|G.X.I GI|
|00002360| 46 2c 0a 58 43 6f 6d 70 | 75 73 65 72 76 65 20 47 |F,.XComp|userve G|
|00002370| 49 46 20 66 6f 72 6d 61 | 74 2e 0a 58 2e 54 50 0a |IF forma|t..X.TP.|
|00002380| 58 2e 42 52 20 2d 49 0a | 58 2e 49 20 49 46 46 0a |X.BR -I.|X.I IFF.|
|00002390| 58 66 6f 72 6d 61 74 2c | 20 69 6e 74 65 72 6c 65 |Xformat,| interle|
|000023a0| 61 76 65 64 20 62 69 74 | 6d 61 70 73 20 28 49 4c |aved bit|maps (IL|
|000023b0| 42 4d 29 2c 20 75 73 65 | 64 20 62 79 20 41 6d 69 |BM), use|d by Ami|
|000023c0| 67 61 73 2e 0a 58 2e 54 | 50 0a 58 2e 42 52 20 2d |gas..X.T|P.X.BR -|
|000023d0| 50 0a 58 2e 49 20 50 42 | 4d 2c 0a 58 4a 65 66 20 |P.X.I PB|M,.XJef |
|000023e0| 50 6f 73 6b 61 6e 7a 65 | 72 27 73 20 62 69 74 6d |Poskanze|r's bitm|
|000023f0| 61 70 20 66 6f 72 6d 61 | 74 2e 0a 58 2e 54 50 0a |ap forma|t..X.TP.|
|00002400| 58 2e 42 52 20 2d 53 0a | 58 2e 49 20 73 75 6e 2c |X.BR -S.|X.I sun,|
|00002410| 0a 58 53 75 6e 20 72 61 | 73 74 65 72 66 69 6c 65 |.XSun ra|sterfile|
|00002420| 73 20 28 6e 6f 74 20 72 | 75 6e 20 6c 65 6e 67 74 |s (not r|un lengt|
|00002430| 68 20 65 6e 63 6f 64 65 | 64 29 2e 0a 58 2e 53 48 |h encode|d)..X.SH|
|00002440| 20 45 58 41 4d 50 4c 45 | 0a 58 2e 50 50 0a 58 47 | EXAMPLE|.X.PP.XG|
|00002450| 69 76 65 6e 20 61 6e 20 | 38 62 69 74 20 73 75 6e |iven an |8bit sun|
|00002460| 20 72 61 73 74 65 72 66 | 69 6c 65 2c 20 68 61 6c | rasterf|ile, hal|
|00002470| 66 74 6f 6e 65 20 75 73 | 69 6e 67 20 42 6c 75 65 |ftone us|ing Blue|
|00002480| 20 4e 6f 69 73 65 20 61 | 6e 64 20 73 68 61 72 70 | Noise a|nd sharp|
|00002490| 65 6e 0a 58 77 69 74 68 | 20 62 65 74 61 20 6f 66 |en.Xwith| beta of|
|000024a0| 20 38 2e 20 20 4f 75 74 | 70 75 74 20 61 20 53 75 | 8. Out|put a Su|
|000024b0| 6e 20 31 62 69 74 20 72 | 61 73 74 65 72 66 69 6c |n 1bit r|asterfil|
|000024c0| 65 3a 0a 58 2e 73 70 0a | 58 20 20 20 20 25 20 66 |e:.X.sp.|X % f|
|000024d0| 62 68 61 6c 66 20 2d 53 | 20 2d 73 38 20 3c 20 66 |bhalf -S| -s8 < f|
|000024e0| 6f 6f 2e 38 62 69 74 20 | 3e 20 66 6f 6f 2e 31 62 |oo.8bit |> foo.1b|
|000024f0| 69 74 0a 58 2e 73 70 0a | 58 55 73 69 6e 67 20 46 |it.X.sp.|XUsing F|
|00002500| 6c 6f 79 64 2d 53 74 65 | 69 6e 62 65 72 67 20 68 |loyd-Ste|inberg h|
|00002510| 61 6c 66 74 6f 6e 69 6e | 67 2c 20 63 6f 6e 76 65 |alftonin|g, conve|
|00002520| 72 74 20 61 20 63 6f 6c | 6f 72 20 47 49 46 20 66 |rt a col|or GIF f|
|00002530| 69 6c 65 20 74 6f 20 61 | 20 50 42 4d 0a 58 62 69 |ile to a| PBM.Xbi|
|00002540| 74 6d 61 70 20 77 69 74 | 68 20 61 62 6f 75 74 20 |tmap wit|h about |
|00002550| 33 30 30 2c 30 30 30 20 | 70 69 78 65 6c 73 2e 20 |300,000 |pixels. |
|00002560| 20 53 68 61 72 70 65 6e | 20 73 6c 69 67 68 74 6c | Sharpen| slightl|
|00002570| 79 20 77 69 74 68 20 61 | 20 62 65 74 61 20 6f 66 |y with a| beta of|
|00002580| 20 32 2e 30 3a 0a 58 2e | 73 70 0a 58 20 20 20 20 | 2.0:.X.|sp.X |
|00002590| 25 20 63 6c 72 32 67 72 | 61 79 20 3c 20 66 6f 6f |% clr2gr|ay < foo|
|000025a0| 2e 67 69 66 20 7c 20 66 | 62 68 61 6c 66 20 2d 50 |.gif | f|bhalf -P|
|000025b0| 20 2d 73 32 2e 30 20 33 | 30 30 30 30 30 20 3e 20 | -s2.0 3|00000 > |
|000025c0| 66 6f 6f 2e 70 62 6d 0a | 58 2e 53 48 20 53 45 45 |foo.pbm.|X.SH SEE|
|000025d0| 20 41 4c 53 4f 0a 58 66 | 62 6d 28 31 29 20 66 6f | ALSO.Xf|bm(1) fo|
|000025e0| 72 20 67 65 6e 65 72 61 | 6c 20 64 69 73 63 75 73 |r genera|l discus|
|000025f0| 73 69 6f 6e 2c 20 70 62 | 6d 28 31 29 20 66 6f 72 |sion, pb|m(1) for|
|00002600| 20 50 42 4d 20 72 6f 75 | 74 69 6e 65 73 2e 0a 58 | PBM rou|tines..X|
|00002610| 2e 53 48 20 42 55 47 53 | 0a 58 4f 6e 20 74 68 65 |.SH BUGS|.XOn the|
|00002620| 20 33 38 36 69 2c 20 74 | 68 65 20 73 68 61 72 70 | 386i, t|he sharp|
|00002630| 65 6e 69 6e 67 20 6f 70 | 74 69 6f 6e 20 63 61 75 |ening op|tion cau|
|00002640| 73 65 73 20 61 20 63 6f | 72 65 20 64 75 6d 70 2e |ses a co|re dump.|
|00002650| 20 20 41 73 20 61 20 77 | 6f 72 6b 61 72 6f 75 6e | As a w|orkaroun|
|00002660| 64 0a 58 79 6f 75 20 63 | 61 6e 20 75 73 65 20 74 |d.Xyou c|an use t|
|00002670| 68 65 20 66 62 73 68 61 | 72 70 28 31 29 20 63 6f |he fbsha|rp(1) co|
|00002680| 6d 6d 61 6e 64 20 70 72 | 69 6f 65 72 20 74 6f 20 |mmand pr|ioer to |
|00002690| 72 75 6e 6e 69 6e 67 20 | 66 62 68 61 6c 66 28 31 |running |fbhalf(1|
|000026a0| 29 2e 0a 58 2e 53 48 20 | 48 49 53 54 4f 52 59 0a |)..X.SH |HISTORY.|
|000026b0| 58 43 6f 70 79 72 69 67 | 68 74 20 28 63 29 20 31 |XCopyrig|ht (c) 1|
|000026c0| 39 38 39 20 62 79 20 4d | 69 63 68 61 65 6c 20 4c |989 by M|ichael L|
|000026d0| 2e 20 4d 61 75 6c 64 69 | 6e 2e 20 20 0a 58 50 65 |. Mauldi|n. .XPe|
|000026e0| 72 6d 69 73 73 69 6f 6e | 20 69 73 20 67 72 61 6e |rmission| is gran|
|000026f0| 74 65 64 20 74 6f 20 75 | 73 65 20 74 68 69 73 20 |ted to u|se this |
|00002700| 70 72 6f 67 72 61 6d 20 | 69 6e 20 77 68 6f 6c 65 |program |in whole|
|00002710| 20 6f 72 20 69 6e 20 70 | 61 72 74 20 70 72 6f 76 | or in p|art prov|
|00002720| 69 64 65 64 0a 58 74 68 | 61 74 20 79 6f 75 20 64 |ided.Xth|at you d|
|00002730| 6f 20 6e 6f 74 20 73 65 | 6c 6c 20 69 74 20 66 6f |o not se|ll it fo|
|00002740| 72 20 70 72 6f 66 69 74 | 20 61 6e 64 20 74 68 61 |r profit| and tha|
|00002750| 74 20 74 68 69 73 20 63 | 6f 70 79 72 69 67 68 74 |t this c|opyright|
|00002760| 20 6e 6f 74 69 63 65 20 | 69 73 0a 58 72 65 74 61 | notice |is.Xreta|
|00002770| 69 6e 65 64 20 75 6e 63 | 68 61 6e 67 65 64 2e 0a |ined unc|hanged..|
|00002780| 58 2e 54 50 0a 58 30 37 | 2d 4d 61 72 2d 38 39 20 |X.TP.X07|-Mar-89 |
|00002790| 20 4d 69 63 68 61 65 6c | 20 4c 2e 20 4d 61 75 6c | Michael| L. Maul|
|000027a0| 64 69 6e 20 61 74 20 43 | 61 72 6e 65 67 69 65 20 |din at C|arnegie |
|000027b0| 4d 65 6c 6c 6f 6e 20 55 | 6e 69 76 65 72 73 69 74 |Mellon U|niversit|
|000027c0| 79 0a 58 42 65 74 61 20 | 72 65 6c 65 61 73 65 20 |y.XBeta |release |
|000027d0| 28 76 65 72 73 69 6f 6e | 20 30 2e 39 29 20 6d 6c |(version| 0.9) ml|
|000027e0| 6d 40 63 73 2e 63 6d 75 | 2e 65 64 75 0a 45 4e 44 |m@cs.cmu|.edu.END|
|000027f0| 5f 4f 46 5f 46 49 4c 45 | 0a 69 66 20 74 65 73 74 |_OF_FILE|.if test|
|00002800| 20 33 35 39 37 20 2d 6e | 65 20 60 77 63 20 2d 63 | 3597 -n|e `wc -c|
|00002810| 20 3c 27 66 62 68 61 6c | 66 2e 31 27 60 3b 20 74 | <'fbhal|f.1'`; t|
|00002820| 68 65 6e 0a 20 20 20 20 | 65 63 68 6f 20 73 68 61 |hen. |echo sha|
|00002830| 72 3a 20 5c 22 27 66 62 | 68 61 6c 66 2e 31 27 5c |r: \"'fb|half.1'\|
|00002840| 22 20 75 6e 70 61 63 6b | 65 64 20 77 69 74 68 20 |" unpack|ed with |
|00002850| 77 72 6f 6e 67 20 73 69 | 7a 65 21 0a 66 69 0a 23 |wrong si|ze!.fi.#|
|00002860| 20 65 6e 64 20 6f 66 20 | 27 66 62 68 61 6c 66 2e | end of |'fbhalf.|
|00002870| 31 27 0a 66 69 0a 69 66 | 20 74 65 73 74 20 2d 66 |1'.fi.if| test -f|
|00002880| 20 27 66 62 6d 2e 68 27 | 20 2d 61 20 22 24 7b 31 | 'fbm.h'| -a "${1|
|00002890| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|000028a0| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|000028b0| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|000028c0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|000028d0| 22 27 66 62 6d 2e 68 27 | 5c 22 0a 65 6c 73 65 0a |"'fbm.h'|\".else.|
|000028e0| 65 63 68 6f 20 73 68 61 | 72 3a 20 45 78 74 72 61 |echo sha|r: Extra|
|000028f0| 63 74 69 6e 67 20 5c 22 | 27 66 62 6d 2e 68 27 5c |cting \"|'fbm.h'\|
|00002900| 22 20 5c 28 33 39 33 31 | 20 63 68 61 72 61 63 74 |" \(3931| charact|
|00002910| 65 72 73 5c 29 0a 73 65 | 64 20 22 73 2f 5e 58 2f |ers\).se|d "s/^X/|
|00002920| 2f 22 20 3e 27 66 62 6d | 2e 68 27 20 3c 3c 27 45 |/" >'fbm|.h' <<'E|
|00002930| 4e 44 5f 4f 46 5f 46 49 | 4c 45 27 0a 58 2f 2a 2a |ND_OF_FI|LE'.X/**|
|00002940| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002950| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002960| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002970| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 0a |********|*******.|
|00002980| 58 20 2a 20 66 62 6d 2e | 68 3a 20 46 42 4d 20 4c |X * fbm.|h: FBM L|
|00002990| 69 62 72 61 72 79 20 30 | 2e 39 20 28 42 65 74 61 |ibrary 0|.9 (Beta|
|000029a0| 20 54 65 73 74 29 20 20 | 30 37 2d 4d 61 72 2d 38 | Test) |07-Mar-8|
|000029b0| 39 20 20 4d 69 63 68 61 | 65 6c 20 4d 61 75 6c 64 |9 Micha|el Mauld|
|000029c0| 69 6e 0a 58 20 2a 0a 58 | 20 2a 20 43 6f 70 79 72 |in.X *.X| * Copyr|
|000029d0| 69 67 68 74 20 28 43 29 | 20 31 39 38 39 20 62 79 |ight (C)| 1989 by|
|000029e0| 20 4d 69 63 68 61 65 6c | 20 4d 61 75 6c 64 69 6e | Michael| Mauldin|
|000029f0| 2e 20 20 50 65 72 6d 69 | 73 73 69 6f 6e 20 69 73 |. Permi|ssion is|
|00002a00| 20 67 72 61 6e 74 65 64 | 20 74 6f 0a 58 20 2a 20 | granted| to.X * |
|00002a10| 75 73 65 20 74 68 69 73 | 20 66 69 6c 65 20 69 6e |use this| file in|
|00002a20| 20 77 68 6f 6c 65 20 6f | 72 20 69 6e 20 70 61 72 | whole o|r in par|
|00002a30| 74 20 70 72 6f 76 69 64 | 65 64 20 74 68 61 74 20 |t provid|ed that |
|00002a40| 79 6f 75 20 64 6f 20 6e | 6f 74 20 73 65 6c 6c 20 |you do n|ot sell |
|00002a50| 69 74 0a 58 20 2a 20 66 | 6f 72 20 70 72 6f 66 69 |it.X * f|or profi|
|00002a60| 74 20 61 6e 64 20 74 68 | 61 74 20 74 68 69 73 20 |t and th|at this |
|00002a70| 63 6f 70 79 72 69 67 68 | 74 20 6e 6f 74 69 63 65 |copyrigh|t notice|
|00002a80| 20 69 73 20 72 65 74 61 | 69 6e 65 64 20 75 6e 63 | is reta|ined unc|
|00002a90| 68 61 6e 67 65 64 2e 0a | 58 20 2a 0a 58 20 2a 20 |hanged..|X *.X * |
|00002aa0| 66 62 6d 2e 68 3a 20 46 | 75 7a 7a 79 20 42 69 74 |fbm.h: F|uzzy Bit|
|00002ab0| 6d 61 70 20 44 65 66 69 | 6e 69 74 69 6f 6e 0a 58 |map Defi|nition.X|
|00002ac0| 20 2a 0a 58 20 2a 20 55 | 53 41 47 45 0a 58 20 2a | *.X * U|SAGE.X *|
|00002ad0| 09 23 20 69 6e 63 6c 75 | 64 65 20 3c 66 62 6d 2e |.# inclu|de <fbm.|
|00002ae0| 68 3e 0a 58 20 2a 0a 58 | 20 2a 20 45 44 49 54 4c |h>.X *.X| * EDITL|
|00002af0| 4f 47 0a 58 20 2a 09 4c | 61 73 74 45 64 69 74 44 |OG.X *.L|astEditD|
|00002b00| 61 74 65 20 3d 20 54 75 | 65 20 4d 61 72 20 20 37 |ate = Tu|e Mar 7|
|00002b10| 20 31 39 3a 35 32 3a 35 | 33 20 31 39 38 39 20 2d | 19:52:5|3 1989 -|
|00002b20| 20 4d 69 63 68 61 65 6c | 20 4d 61 75 6c 64 69 6e | Michael| Mauldin|
|00002b30| 0a 58 20 2a 09 4c 61 73 | 74 46 69 6c 65 4e 61 6d |.X *.Las|tFileNam|
|00002b40| 65 20 3d 20 2f 75 73 72 | 32 2f 6d 6c 6d 2f 73 72 |e = /usr|2/mlm/sr|
|00002b50| 63 2f 6d 69 73 63 2f 66 | 62 6d 2f 66 62 6d 2e 68 |c/misc/f|bm/fbm.h|
|00002b60| 0a 58 20 2a 0a 58 20 2a | 20 48 49 53 54 4f 52 59 |.X *.X *| HISTORY|
|00002b70| 0a 58 20 2a 20 30 37 2d | 4d 61 72 2d 38 39 20 20 |.X * 07-|Mar-89 |
|00002b80| 4d 69 63 68 61 65 6c 20 | 4d 61 75 6c 64 69 6e 20 |Michael |Mauldin |
|00002b90| 28 6d 6c 6d 29 20 61 74 | 20 43 61 72 6e 65 67 69 |(mlm) at| Carnegi|
|00002ba0| 65 20 4d 65 6c 6c 6f 6e | 20 55 6e 69 76 65 72 73 |e Mellon| Univers|
|00002bb0| 69 74 79 0a 58 20 2a 09 | 42 65 74 61 20 72 65 6c |ity.X *.|Beta rel|
|00002bc0| 65 61 73 65 20 28 76 65 | 72 73 69 6f 6e 20 30 2e |ease (ve|rsion 0.|
|00002bd0| 39 29 20 6d 6c 6d 40 63 | 73 2e 63 6d 75 2e 65 64 |9) mlm@c|s.cmu.ed|
|00002be0| 75 2e 0a 58 20 2a 0a 58 | 20 2a 20 32 30 2d 41 75 |u..X *.X| * 20-Au|
|00002bf0| 67 2d 38 38 20 20 4d 69 | 63 68 61 65 6c 20 4d 61 |g-88 Mi|chael Ma|
|00002c00| 75 6c 64 69 6e 20 28 6d | 6c 6d 29 20 61 74 20 43 |uldin (m|lm) at C|
|00002c10| 61 72 6e 65 67 69 65 2d | 4d 65 6c 6c 6f 6e 20 55 |arnegie-|Mellon U|
|00002c20| 6e 69 76 65 72 73 69 74 | 79 0a 58 20 2a 09 43 72 |niversit|y.X *.Cr|
|00002c30| 65 61 74 65 64 2e 0a 58 | 20 2a 2a 2a 2a 2a 2a 2a |eated..X| *******|
|00002c40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002c70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2f 0a 58 0a 58 23 |********|**/.X.X#|
|00002c80| 20 64 65 66 69 6e 65 20 | 46 42 4d 5f 4d 41 58 5f | define |FBM_MAX_|
|00002c90| 54 49 54 4c 45 09 09 38 | 30 09 09 2f 2a 20 46 6f |TITLE..8|0../* Fo|
|00002ca0| 72 20 74 69 74 6c 65 20 | 61 6e 64 20 63 72 65 64 |r title |and cred|
|00002cb0| 69 74 73 20 2a 2f 0a 58 | 0a 58 23 20 64 65 66 69 |its */.X|.X# defi|
|00002cc0| 6e 65 20 42 4c 41 43 4b | 09 09 09 30 09 09 2f 2a |ne BLACK|...0../*|
|00002cd0| 20 46 6f 72 20 38 62 69 | 74 20 66 69 6c 65 73 20 | For 8bi|t files |
|00002ce0| 2a 2f 0a 58 23 20 64 65 | 66 69 6e 65 20 57 48 49 |*/.X# de|fine WHI|
|00002cf0| 54 45 09 09 09 32 35 35 | 09 09 2f 2a 20 46 6f 72 |TE...255|../* For|
|00002d00| 20 38 62 69 74 20 66 69 | 6c 65 73 20 2a 2f 0a 58 | 8bit fi|les */.X|
|00002d10| 23 20 64 65 66 69 6e 65 | 20 42 59 54 45 09 09 09 |# define| BYTE...|
|00002d20| 32 35 36 09 09 2f 2a 20 | 46 6f 72 20 38 62 69 74 |256../* |For 8bit|
|00002d30| 20 66 69 6c 65 73 20 2a | 2f 0a 58 0a 58 23 20 64 | files *|/.X.X# d|
|00002d40| 65 66 69 6e 65 20 42 49 | 47 09 09 09 31 09 09 2f |efine BI|G...1../|
|00002d50| 2a 20 6d 73 62 20 66 69 | 72 73 74 20 62 79 74 65 |* msb fi|rst byte|
|00002d60| 20 6f 72 64 65 72 20 2a | 2f 0a 58 23 20 64 65 66 | order *|/.X# def|
|00002d70| 69 6e 65 20 4c 49 54 54 | 4c 45 09 09 09 30 09 09 |ine LITT|LE...0..|
|00002d80| 2f 2a 20 6c 73 62 20 66 | 69 72 73 74 20 62 79 74 |/* lsb f|irst byt|
|00002d90| 65 20 6f 72 64 65 72 20 | 2a 2f 0a 58 0a 58 23 20 |e order |*/.X.X# |
|00002da0| 64 65 66 69 6e 65 20 42 | 59 54 45 53 50 45 52 4c |define B|YTESPERL|
|00002db0| 49 4e 45 09 09 33 32 09 | 09 2f 2a 20 46 6f 72 20 |INE..32.|./* For |
|00002dc0| 50 6f 73 74 53 63 72 69 | 70 74 20 6f 75 74 70 75 |PostScri|pt outpu|
|00002dd0| 74 20 2a 2f 0a 58 0a 58 | 23 20 64 65 66 69 6e 65 |t */.X.X|# define|
|00002de0| 20 42 4c 41 4e 4b 53 09 | 09 22 20 20 20 20 20 20 | BLANKS.|." |
|00002df0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e10| 20 20 20 20 20 20 20 22 | 0a 58 23 20 64 65 66 69 | "|.X# defi|
|00002e20| 6e 65 20 53 4b 49 50 41 | 52 47 09 77 68 69 6c 65 |ne SKIPA|RG.while|
|00002e30| 20 28 2a 2b 2b 28 2a 61 | 72 67 76 29 29 3b 20 2d | (*++(*a|rgv)); -|
|00002e40| 2d 28 2a 61 72 67 76 29 | 0a 58 23 20 64 65 66 69 |-(*argv)|.X# defi|
|00002e50| 6e 65 20 43 4c 52 41 52 | 47 09 09 73 74 72 6e 63 |ne CLRAR|G..strnc|
|00002e60| 70 79 20 28 2a 61 72 67 | 76 2c 20 42 4c 41 4e 4b |py (*arg|v, BLANK|
|00002e70| 53 2c 20 73 74 72 6c 65 | 6e 20 28 2a 61 72 67 76 |S, strle|n (*argv|
|00002e80| 29 29 3b 20 5c 0a 58 09 | 09 09 77 68 69 6c 65 20 |)); \.X.|..while |
|00002e90| 28 2a 2b 2b 28 2a 61 72 | 67 76 29 29 3b 20 2d 2d |(*++(*ar|gv)); --|
|00002ea0| 28 2a 61 72 67 76 29 0a | 58 0a 58 23 20 64 65 66 |(*argv).|X.X# def|
|00002eb0| 69 6e 65 20 46 4d 54 5f | 41 54 4b 09 31 09 2f 2a |ine FMT_|ATK.1./*|
|00002ec0| 20 20 20 41 6e 64 72 65 | 77 20 74 6f 6f 6c 6b 69 | Andre|w toolki|
|00002ed0| 74 20 72 61 73 74 65 72 | 20 66 6f 72 6d 61 74 20 |t raster| format |
|00002ee0| 2a 2f 0a 58 23 20 64 65 | 66 69 6e 65 20 46 4d 54 |*/.X# de|fine FMT|
|00002ef0| 5f 46 41 43 45 09 32 09 | 2f 2a 20 20 20 42 65 6e |_FACE.2.|/* Ben|
|00002f00| 6e 65 74 20 59 65 65 27 | 73 20 31 62 69 74 20 46 |net Yee'|s 1bit F|
|00002f10| 61 63 65 20 66 6f 72 6d | 61 74 20 2a 2f 0a 58 23 |ace form|at */.X#|
|00002f20| 20 64 65 66 69 6e 65 20 | 46 4d 54 5f 46 42 4d 09 | define |FMT_FBM.|
|00002f30| 33 09 2f 2a 20 2b 20 46 | 75 7a 7a 79 20 62 69 74 |3./* + F|uzzy bit|
|00002f40| 6d 61 70 20 66 6f 72 6d | 61 74 20 2a 2f 0a 58 23 |map form|at */.X#|
|00002f50| 20 64 65 66 69 6e 65 20 | 46 4d 54 5f 47 49 46 09 | define |FMT_GIF.|
|00002f60| 34 09 2f 2a 20 20 20 43 | 6f 6d 70 75 73 65 72 76 |4./* C|ompuserv|
|00002f70| 65 20 47 72 61 70 68 69 | 63 73 20 49 6e 74 65 72 |e Graphi|cs Inter|
|00002f80| 63 68 61 6e 67 65 20 2a | 2f 0a 58 23 20 64 65 66 |change *|/.X# def|
|00002f90| 69 6e 65 20 46 4d 54 5f | 49 46 46 09 35 09 2f 2a |ine FMT_|IFF.5./*|
|00002fa0| 20 20 20 41 6d 69 67 61 | 20 49 6e 74 65 72 63 68 | Amiga| Interch|
|00002fb0| 61 6e 67 65 20 46 6f 72 | 6d 61 74 20 46 69 6c 65 |ange For|mat File|
|00002fc0| 20 2a 2f 0a 58 23 20 64 | 65 66 69 6e 65 20 46 4d | */.X# d|efine FM|
|00002fd0| 54 5f 4c 45 41 46 09 36 | 09 2f 2a 20 20 20 49 6e |T_LEAF.6|./* In|
|00002fe0| 74 65 72 4c 65 61 66 20 | 69 6d 61 67 65 20 66 6f |terLeaf |image fo|
|00002ff0| 72 6d 61 74 20 2a 2f 0a | 58 23 20 64 65 66 69 6e |rmat */.|X# defin|
|00003000| 65 20 46 4d 54 5f 4d 43 | 50 09 37 09 2f 2a 20 20 |e FMT_MC|P.7./* |
|00003010| 20 4d 61 63 70 61 69 6e | 74 20 66 6f 72 6d 61 74 | Macpain|t format|
|00003020| 20 2a 2f 0a 58 23 20 64 | 65 66 69 6e 65 20 46 4d | */.X# d|efine FM|
|00003030| 54 5f 50 42 4d 09 38 09 | 2f 2a 20 20 20 50 6f 73 |T_PBM.8.|/* Pos|
|00003040| 6b 61 6e 7a 65 72 20 31 | 62 69 74 20 66 6f 72 6d |kanzer 1|bit form|
|00003050| 61 74 20 2a 2f 0a 58 23 | 20 64 65 66 69 6e 65 20 |at */.X#| define |
|00003060| 46 4d 54 5f 50 43 58 09 | 39 09 2f 2a 20 20 20 50 |FMT_PCX.|9./* P|
|00003070| 43 58 20 66 6f 72 6d 61 | 74 20 2a 2f 0a 58 23 20 |CX forma|t */.X# |
|00003080| 64 65 66 69 6e 65 20 46 | 4d 54 5f 53 55 4e 09 31 |define F|MT_SUN.1|
|00003090| 30 09 2f 2a 20 2b 20 53 | 75 6e 20 72 61 73 74 65 |0./* + S|un raste|
|000030a0| 72 66 69 6c 65 20 2a 2f | 0a 58 23 20 64 65 66 69 |rfile */|.X# defi|
|000030b0| 6e 65 20 46 4d 54 5f 54 | 49 46 46 09 31 31 09 2f |ne FMT_T|IFF.11./|
|000030c0| 2a 20 20 20 54 61 67 67 | 65 64 20 49 46 46 2c 20 |* Tagg|ed IFF, |
|000030d0| 4e 65 78 74 2c 20 4d 61 | 63 69 6e 74 6f 73 68 20 |Next, Ma|cintosh |
|000030e0| 2a 2f 0a 58 23 20 64 65 | 66 69 6e 65 20 46 4d 54 |*/.X# de|fine FMT|
|000030f0| 5f 58 31 31 09 31 32 09 | 2f 2a 20 20 20 58 31 31 |_X11.12.|/* X11|
|00003100| 20 66 6f 72 6d 61 74 20 | 2a 2f 0a 58 0a 58 23 20 | format |*/.X.X# |
|00003110| 64 65 66 69 6e 65 20 46 | 4d 54 43 48 41 52 20 22 |define F|MTCHAR "|
|00003120| 2e 41 42 46 47 49 4c 4d | 50 5a 53 54 58 22 0a 58 |.ABFGILM|PZSTX".X|
|00003130| 0a 58 23 20 64 65 66 69 | 6e 65 20 44 45 46 5f 38 |.X# defi|ne DEF_8|
|00003140| 42 49 54 09 46 4d 54 5f | 46 42 4d 0a 58 23 20 64 |BIT.FMT_|FBM.X# d|
|00003150| 65 66 69 6e 65 20 44 45 | 46 5f 31 42 49 54 09 46 |efine DE|F_1BIT.F|
|00003160| 4d 54 5f 53 55 4e 0a 58 | 0a 58 2f 2a 20 41 6e 20 |MT_SUN.X|.X/* An |
|00003170| 46 42 4d 20 62 69 74 6d | 61 70 20 68 65 61 64 65 |FBM bitm|ap heade|
|00003180| 72 20 69 6e 20 6d 65 6d | 6f 72 79 20 2a 2f 0a 58 |r in mem|ory */.X|
|00003190| 74 79 70 65 64 65 66 20 | 73 74 72 75 63 74 20 66 |typedef |struct f|
|000031a0| 62 6d 5f 68 64 72 5f 73 | 74 72 75 63 74 20 7b 0a |bm_hdr_s|truct {.|
|000031b0| 58 09 69 6e 74 09 63 6f | 6c 73 3b 09 09 09 2f 2a |X.int.co|ls;.../*|
|000031c0| 20 57 69 64 74 68 20 69 | 6e 20 70 69 78 65 6c 73 | Width i|n pixels|
|000031d0| 20 2a 2f 0a 58 09 69 6e | 74 09 72 6f 77 73 3b 09 | */.X.in|t.rows;.|
|000031e0| 09 09 2f 2a 20 48 65 69 | 67 68 74 20 69 6e 20 70 |../* Hei|ght in p|
|000031f0| 69 78 65 6c 73 20 2a 2f | 0a 58 09 69 6e 74 09 70 |ixels */|.X.int.p|
|00003200| 6c 61 6e 65 73 3b 09 09 | 09 2f 2a 20 44 65 70 74 |lanes;..|./* Dept|
|00003210| 68 20 28 31 20 66 6f 72 | 20 42 2b 57 2c 20 33 20 |h (1 for| B+W, 3 |
|00003220| 66 6f 72 20 52 47 42 29 | 20 2a 2f 0a 58 09 69 6e |for RGB)| */.X.in|
|00003230| 74 09 62 69 74 73 3b 09 | 09 09 2f 2a 20 42 69 74 |t.bits;.|../* Bit|
|00003240| 73 20 70 65 72 20 70 69 | 78 65 6c 20 2a 2f 0a 58 |s per pi|xel */.X|
|00003250| 09 69 6e 74 09 70 68 79 | 73 62 69 74 73 3b 09 09 |.int.phy|sbits;..|
|00003260| 2f 2a 20 42 69 74 73 20 | 74 6f 20 73 74 6f 72 65 |/* Bits |to store|
|00003270| 20 65 61 63 68 20 70 69 | 78 65 6c 20 2a 2f 0a 58 | each pi|xel */.X|
|00003280| 09 69 6e 74 09 72 6f 77 | 6c 65 6e 3b 09 09 09 2f |.int.row|len;.../|
|00003290| 2a 20 4c 65 6e 67 74 68 | 20 6f 66 20 61 20 72 6f |* Length| of a ro|
|000032a0| 77 20 69 6e 20 62 79 74 | 65 73 20 2a 2f 0a 58 09 |w in byt|es */.X.|
|000032b0| 69 6e 74 09 70 6c 6e 6c | 65 6e 3b 09 09 09 2f 2a |int.plnl|en;.../*|
|000032c0| 20 4c 65 6e 67 74 68 20 | 6f 66 20 61 20 70 6c 61 | Length |of a pla|
|000032d0| 6e 65 20 69 6e 20 62 79 | 74 65 73 20 2a 2f 0a 58 |ne in by|tes */.X|
|000032e0| 09 69 6e 74 09 63 6c 72 | 6c 65 6e 3b 09 09 09 2f |.int.clr|len;.../|
|000032f0| 2a 20 4c 65 6e 67 74 68 | 20 6f 66 20 63 6f 6c 6f |* Length| of colo|
|00003300| 72 20 6d 61 70 20 2a 2f | 0a 58 09 64 6f 75 62 6c |r map */|.X.doubl|
|00003310| 65 09 61 73 70 65 63 74 | 3b 09 09 09 2f 2a 20 72 |e.aspect|;.../* r|
|00003320| 61 74 69 6f 20 6f 66 20 | 59 20 74 6f 20 58 20 6f |atio of |Y to X o|
|00003330| 66 20 6f 6e 65 20 70 69 | 78 65 6c 20 2a 2f 0a 58 |f one pi|xel */.X|
|00003340| 09 63 68 61 72 09 74 69 | 74 6c 65 5b 46 42 4d 5f |.char.ti|tle[FBM_|
|00003350| 4d 41 58 5f 54 49 54 4c | 45 5d 3b 09 2f 2a 20 4e |MAX_TITL|E];./* N|
|00003360| 75 6c 6c 20 74 65 72 6d | 69 6e 61 74 65 64 20 74 |ull term|inated t|
|00003370| 69 74 6c 65 20 2a 2f 0a | 58 09 63 68 61 72 09 63 |itle */.|X.char.c|
|00003380| 72 65 64 69 74 73 5b 46 | 42 4d 5f 4d 41 58 5f 54 |redits[F|BM_MAX_T|
|00003390| 49 54 4c 45 5d 3b 09 2f | 2a 20 4e 75 6c 6c 20 74 |ITLE];./|* Null t|
|000033a0| 65 72 6d 69 6e 61 74 65 | 64 20 63 72 65 64 69 74 |erminate|d credit|
|000033b0| 73 20 2a 2f 0a 58 7d 20 | 46 42 4d 48 44 52 3b 0a |s */.X} |FBMHDR;.|
|000033c0| 58 0a 58 23 20 64 65 66 | 69 6e 65 20 46 42 4d 5f |X.X# def|ine FBM_|
|000033d0| 4d 41 47 49 43 09 22 25 | 62 69 74 6d 61 70 22 0a |MAGIC."%|bitmap".|
|000033e0| 58 23 20 64 65 66 69 6e | 65 20 42 4d 5f 4d 41 47 |X# defin|e BM_MAG|
|000033f0| 49 43 09 28 27 21 27 20 | 3c 3c 20 38 20 7c 20 27 |IC.('!' |<< 8 | '|
|00003400| 21 27 29 0a 58 23 20 64 | 65 66 69 6e 65 20 50 43 |!').X# d|efine PC|
|00003410| 58 5f 4d 41 47 49 43 09 | 30 78 61 0a 58 23 20 64 |X_MAGIC.|0xa.X# d|
|00003420| 65 66 69 6e 65 20 47 49 | 46 5f 4d 41 47 49 43 09 |efine GI|F_MAGIC.|
|00003430| 22 47 49 46 38 37 61 22 | 0a 58 23 20 64 65 66 69 |"GIF87a"|.X# defi|
|00003440| 6e 65 20 49 46 46 5f 4d | 41 47 49 43 09 22 46 4f |ne IFF_M|AGIC."FO|
|00003450| 52 4d 22 0a 58 23 20 64 | 65 66 69 6e 65 20 53 55 |RM".X# d|efine SU|
|00003460| 4e 5f 4d 41 47 49 43 09 | 30 78 35 39 61 36 36 61 |N_MAGIC.|0x59a66a|
|00003470| 39 35 0a 58 0a 58 2f 2a | 20 46 42 4d 20 62 69 74 |95.X.X/*| FBM bit|
|00003480| 6d 61 70 20 68 65 61 64 | 65 72 73 20 69 6e 20 66 |map head|ers in f|
|00003490| 69 6c 65 73 20 28 6e 75 | 6c 6c 20 74 65 72 6d 69 |iles (nu|ll termi|
|000034a0| 6e 61 74 65 64 20 31 32 | 20 63 68 61 72 61 63 74 |nated 12| charact|
|000034b0| 65 72 20 61 73 63 69 69 | 20 73 74 72 69 6e 67 73 |er ascii| strings|
|000034c0| 29 20 2a 2f 0a 58 74 79 | 70 65 64 65 66 20 73 74 |) */.Xty|pedef st|
|000034d0| 72 75 63 74 20 66 62 6d | 5f 66 69 6c 65 68 64 72 |ruct fbm|_filehdr|
|000034e0| 5f 73 74 72 75 63 74 20 | 7b 0a 58 09 63 68 61 72 |_struct |{.X.char|
|000034f0| 09 6d 61 67 69 63 5b 38 | 5d 3b 09 09 2f 2a 20 32 |.magic[8|];../* 2|
|00003500| 20 62 79 74 65 73 20 46 | 42 4d 5f 4d 41 47 49 43 | bytes F|BM_MAGIC|
|00003510| 20 6e 75 6d 62 65 72 20 | 2a 2f 0a 58 09 63 68 61 | number |*/.X.cha|
|00003520| 72 09 63 6f 6c 73 5b 38 | 5d 3b 09 09 2f 2a 20 57 |r.cols[8|];../* W|
|00003530| 69 64 74 68 20 69 6e 20 | 70 69 78 65 6c 73 20 2a |idth in |pixels *|
|00003540| 2f 0a 58 09 63 68 61 72 | 09 72 6f 77 73 5b 38 5d |/.X.char|.rows[8]|
|00003550| 3b 09 09 2f 2a 20 48 65 | 69 67 68 74 20 69 6e 20 |;../* He|ight in |
|00003560| 70 69 78 65 6c 73 20 2a | 2f 0a 58 09 63 68 61 72 |pixels *|/.X.char|
|00003570| 09 70 6c 61 6e 65 73 5b | 38 5d 3b 09 09 2f 2a 20 |.planes[|8];../* |
|00003580| 44 65 70 74 68 20 28 31 | 20 66 6f 72 20 42 2b 57 |Depth (1| for B+W|
|00003590| 2c 20 33 20 66 6f 72 20 | 52 47 42 29 20 2a 2f 0a |, 3 for |RGB) */.|
|000035a0| 58 09 63 68 61 72 09 62 | 69 74 73 5b 38 5d 3b 09 |X.char.b|its[8];.|
|000035b0| 09 2f 2a 20 42 69 74 73 | 20 70 65 72 20 70 69 78 |./* Bits| per pix|
|000035c0| 65 6c 20 2a 2f 0a 58 09 | 63 68 61 72 09 70 68 79 |el */.X.|char.phy|
|000035d0| 73 62 69 74 73 5b 38 5d | 3b 09 09 2f 2a 20 42 69 |sbits[8]|;../* Bi|
|000035e0| 74 73 20 74 6f 20 73 74 | 6f 72 65 20 65 61 63 68 |ts to st|ore each|
|000035f0| 20 70 69 78 65 6c 20 2a | 2f 0a 58 09 63 68 61 72 | pixel *|/.X.char|
|00003600| 09 72 6f 77 6c 65 6e 5b | 31 32 5d 3b 09 09 2f 2a |.rowlen[|12];../*|
|00003610| 20 4c 65 6e 67 74 68 20 | 6f 66 20 61 20 72 6f 77 | Length |of a row|
|00003620| 20 69 6e 20 62 79 74 65 | 73 20 2a 2f 0a 58 09 63 | in byte|s */.X.c|
|00003630| 68 61 72 09 70 6c 6e 6c | 65 6e 5b 31 32 5d 3b 09 |har.plnl|en[12];.|
|00003640| 09 2f 2a 20 4c 65 6e 67 | 74 68 20 6f 66 20 61 20 |./* Leng|th of a |
|00003650| 70 6c 61 6e 65 20 69 6e | 20 62 79 74 65 73 20 2a |plane in| bytes *|
|00003660| 2f 0a 58 09 63 68 61 72 | 09 63 6c 72 6c 65 6e 5b |/.X.char|.clrlen[|
|00003670| 31 32 5d 3b 09 09 2f 2a | 20 4c 65 6e 67 74 68 20 |12];../*| Length |
|00003680| 6f 66 20 63 6f 6c 6f 72 | 6d 61 70 20 69 6e 20 62 |of color|map in b|
|00003690| 79 74 65 73 20 2a 2f 0a | 58 09 63 68 61 72 09 61 |ytes */.|X.char.a|
|000036a0| 73 70 65 63 74 5b 31 32 | 5d 3b 09 09 2f 2a 20 72 |spect[12|];../* r|
|000036b0| 61 74 69 6f 20 6f 66 20 | 59 20 74 6f 20 58 20 6f |atio of |Y to X o|
|000036c0| 66 20 6f 6e 65 20 70 69 | 78 65 6c 20 2a 2f 0a 58 |f one pi|xel */.X|
|000036d0| 09 63 68 61 72 09 74 69 | 74 6c 65 5b 46 42 4d 5f |.char.ti|tle[FBM_|
|000036e0| 4d 41 58 5f 54 49 54 4c | 45 5d 3b 09 2f 2a 20 4e |MAX_TITL|E];./* N|
|000036f0| 75 6c 6c 20 74 65 72 6d | 69 6e 61 74 65 64 20 74 |ull term|inated t|
|00003700| 69 74 6c 65 20 2a 2f 0a | 58 09 63 68 61 72 09 63 |itle */.|X.char.c|
|00003710| 72 65 64 69 74 73 5b 46 | 42 4d 5f 4d 41 58 5f 54 |redits[F|BM_MAX_T|
|00003720| 49 54 4c 45 5d 3b 09 2f | 2a 20 4e 75 6c 6c 20 74 |ITLE];./|* Null t|
|00003730| 65 72 6d 69 6e 61 74 65 | 64 20 63 72 65 64 69 74 |erminate|d credit|
|00003740| 73 20 2a 2f 0a 58 7d 20 | 46 42 4d 46 49 4c 45 48 |s */.X} |FBMFILEH|
|00003750| 44 52 3b 0a 58 0a 58 2f | 2a 20 41 6e 20 46 42 4d |DR;.X.X/|* An FBM|
|00003760| 20 62 69 74 6d 61 70 20 | 69 6e 20 6d 65 6d 6f 72 | bitmap |in memor|
|00003770| 79 20 2a 2f 0a 58 74 79 | 70 65 64 65 66 20 73 74 |y */.Xty|pedef st|
|00003780| 72 75 63 74 20 66 62 6d | 5f 73 74 72 75 63 74 20 |ruct fbm|_struct |
|00003790| 7b 0a 58 09 46 42 4d 48 | 44 52 20 68 64 72 3b 09 |{.X.FBMH|DR hdr;.|
|000037a0| 09 09 2f 2a 20 42 69 74 | 6d 61 70 20 68 65 61 64 |../* Bit|map head|
|000037b0| 65 72 20 2a 2f 0a 58 09 | 75 6e 73 69 67 6e 65 64 |er */.X.|unsigned|
|000037c0| 20 63 68 61 72 20 2a 63 | 6d 3b 09 09 2f 2a 20 50 | char *c|m;../* P|
|000037d0| 6f 69 6e 74 65 72 20 74 | 6f 20 63 6f 6c 6f 72 6d |ointer t|o colorm|
|000037e0| 61 70 20 2a 2f 0a 58 09 | 75 6e 73 69 67 6e 65 64 |ap */.X.|unsigned|
|000037f0| 20 63 68 61 72 20 2a 62 | 6d 3b 09 09 2f 2a 20 50 | char *b|m;../* P|
|00003800| 6f 69 6e 74 65 72 20 74 | 6f 20 72 61 77 20 62 69 |ointer t|o raw bi|
|00003810| 74 73 20 2a 2f 0a 58 7d | 20 46 42 4d 3b 0a 58 0a |ts */.X}| FBM;.X.|
|00003820| 58 2f 2a 20 46 75 6e 63 | 74 69 6f 6e 73 20 2a 2f |X/* Func|tions */|
|00003830| 0a 58 64 6f 75 62 6c 65 | 20 61 74 6f 66 20 28 29 |.Xdouble| atof ()|
|00003840| 3b 0a 58 63 68 61 72 20 | 2a 73 74 72 63 70 79 28 |;.Xchar |*strcpy(|
|00003850| 29 2c 20 2a 73 74 72 6e | 63 70 79 28 29 2c 20 2a |), *strn|cpy(), *|
|00003860| 6d 61 6c 6c 6f 63 28 29 | 3b 0a 58 6c 6f 6e 67 20 |malloc()|;.Xlong |
|00003870| 74 69 6d 65 20 28 29 2c | 20 67 65 74 5f 6c 6f 6e |time (),| get_lon|
|00003880| 67 20 28 29 3b 0a 58 69 | 6e 74 20 67 65 74 5f 73 |g ();.Xi|nt get_s|
|00003890| 68 6f 72 74 20 28 29 3b | 0a 58 0a 58 2f 2a 20 4d |hort ();|.X.X/* M|
|000038a0| 61 63 72 6f 20 66 6f 72 | 20 67 65 74 74 69 6e 67 |acro for| getting|
|000038b0| 20 6e 65 78 74 20 6d 61 | 67 69 63 20 63 68 61 72 | next ma|gic char|
|000038c0| 20 2a 2f 0a 58 23 20 64 | 65 66 69 6e 65 20 4e 45 | */.X# d|efine NE|
|000038d0| 58 54 4d 43 48 28 46 2c | 53 2c 4c 29 20 28 28 28 |XTMCH(F,|S,L) (((|
|000038e0| 4c 29 20 3e 20 30 29 20 | 3f 20 28 28 4c 29 2d 2d |L) > 0) |? ((L)--|
|000038f0| 2c 20 2a 28 53 29 2b 2b | 29 20 3a 20 67 65 74 63 |, *(S)++|) : getc|
|00003900| 20 28 46 29 29 0a 45 4e | 44 5f 4f 46 5f 46 49 4c | (F)).EN|D_OF_FIL|
|00003910| 45 0a 69 66 20 74 65 73 | 74 20 33 39 33 31 20 2d |E.if tes|t 3931 -|
|00003920| 6e 65 20 60 77 63 20 2d | 63 20 3c 27 66 62 6d 2e |ne `wc -|c <'fbm.|
|00003930| 68 27 60 3b 20 74 68 65 | 6e 0a 20 20 20 20 65 63 |h'`; the|n. ec|
|00003940| 68 6f 20 73 68 61 72 3a | 20 5c 22 27 66 62 6d 2e |ho shar:| \"'fbm.|
|00003950| 68 27 5c 22 20 75 6e 70 | 61 63 6b 65 64 20 77 69 |h'\" unp|acked wi|
|00003960| 74 68 20 77 72 6f 6e 67 | 20 73 69 7a 65 21 0a 66 |th wrong| size!.f|
|00003970| 69 0a 23 20 65 6e 64 20 | 6f 66 20 27 66 62 6d 2e |i.# end |of 'fbm.|
|00003980| 68 27 0a 66 69 0a 69 66 | 20 74 65 73 74 20 2d 66 |h'.fi.if| test -f|
|00003990| 20 27 66 62 6e 6f 72 6d | 2e 63 27 20 2d 61 20 22 | 'fbnorm|.c' -a "|
|000039a0| 24 7b 31 7d 22 20 21 3d | 20 22 2d 63 22 20 3b 20 |${1}" !=| "-c" ; |
|000039b0| 74 68 65 6e 20 0a 20 20 | 65 63 68 6f 20 73 68 61 |then . |echo sha|
|000039c0| 72 3a 20 57 69 6c 6c 20 | 6e 6f 74 20 63 6c 6f 62 |r: Will |not clob|
|000039d0| 62 65 72 20 65 78 69 73 | 74 69 6e 67 20 66 69 6c |ber exis|ting fil|
|000039e0| 65 20 5c 22 27 66 62 6e | 6f 72 6d 2e 63 27 5c 22 |e \"'fbn|orm.c'\"|
|000039f0| 0a 65 6c 73 65 0a 65 63 | 68 6f 20 73 68 61 72 3a |.else.ec|ho shar:|
|00003a00| 20 45 78 74 72 61 63 74 | 69 6e 67 20 5c 22 27 66 | Extract|ing \"'f|
|00003a10| 62 6e 6f 72 6d 2e 63 27 | 5c 22 20 5c 28 34 38 30 |bnorm.c'|\" \(480|
|00003a20| 31 20 63 68 61 72 61 63 | 74 65 72 73 5c 29 0a 73 |1 charac|ters\).s|
|00003a30| 65 64 20 22 73 2f 5e 58 | 2f 2f 22 20 3e 27 66 62 |ed "s/^X|//" >'fb|
|00003a40| 6e 6f 72 6d 2e 63 27 20 | 3c 3c 27 45 4e 44 5f 4f |norm.c' |<<'END_O|
|00003a50| 46 5f 46 49 4c 45 27 0a | 58 2f 2a 2a 2a 2a 2a 2a |F_FILE'.|X/******|
|00003a60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003a70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003a80| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003a90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0a 58 20 2a 20 |********|***.X * |
|00003aa0| 66 62 6e 6f 72 6d 2e 63 | 3a 20 46 42 4d 20 4c 69 |fbnorm.c|: FBM Li|
|00003ab0| 62 72 61 72 79 20 30 2e | 39 20 28 42 65 74 61 20 |brary 0.|9 (Beta |
|00003ac0| 74 65 73 74 29 20 30 37 | 2d 4d 61 72 2d 38 39 20 |test) 07|-Mar-89 |
|00003ad0| 20 4d 69 63 68 61 65 6c | 20 4d 61 75 6c 64 69 6e | Michael| Mauldin|
|00003ae0| 0a 58 20 2a 0a 58 20 2a | 20 43 6f 70 79 72 69 67 |.X *.X *| Copyrig|
|00003af0| 68 74 20 28 43 29 20 31 | 39 38 39 20 62 79 20 4d |ht (C) 1|989 by M|
|00003b00| 69 63 68 61 65 6c 20 4d | 61 75 6c 64 69 6e 2e 20 |ichael M|auldin. |
|00003b10| 20 50 65 72 6d 69 73 73 | 69 6f 6e 20 69 73 20 67 | Permiss|ion is g|
|00003b20| 72 61 6e 74 65 64 20 74 | 6f 0a 58 20 2a 20 75 73 |ranted t|o.X * us|
|00003b30| 65 20 74 68 69 73 20 66 | 69 6c 65 20 69 6e 20 77 |e this f|ile in w|
|00003b40| 68 6f 6c 65 20 6f 72 20 | 69 6e 20 70 61 72 74 20 |hole or |in part |
|00003b50| 70 72 6f 76 69 64 65 64 | 20 74 68 61 74 20 79 6f |provided| that yo|
|00003b60| 75 20 64 6f 20 6e 6f 74 | 20 73 65 6c 6c 20 69 74 |u do not| sell it|
|00003b70| 0a 58 20 2a 20 66 6f 72 | 20 70 72 6f 66 69 74 20 |.X * for| profit |
|00003b80| 61 6e 64 20 74 68 61 74 | 20 74 68 69 73 20 63 6f |and that| this co|
|00003b90| 70 79 72 69 67 68 74 20 | 6e 6f 74 69 63 65 20 69 |pyright |notice i|
|00003ba0| 73 20 72 65 74 61 69 6e | 65 64 20 75 6e 63 68 61 |s retain|ed uncha|
|00003bb0| 6e 67 65 64 2e 0a 58 20 | 2a 0a 58 20 2a 20 66 62 |nged..X |*.X * fb|
|00003bc0| 6e 6f 72 6d 2e 63 3a 20 | 4e 6f 72 6d 61 6c 69 7a |norm.c: |Normaliz|
|00003bd0| 65 20 63 6f 6e 74 72 61 | 73 74 20 61 6e 64 20 62 |e contra|st and b|
|00003be0| 72 69 67 68 74 6e 65 73 | 73 20 6f 66 20 69 6d 61 |rightnes|s of ima|
|00003bf0| 67 65 0a 58 20 2a 0a 58 | 20 2a 20 55 53 41 47 45 |ge.X *.X| * USAGE|
|00003c00| 0a 58 20 2a 20 20 20 20 | 20 20 25 20 66 62 6e 6f |.X * | % fbno|
|00003c10| 72 6d 20 3c 20 69 6d 61 | 67 65 20 3e 20 69 6d 61 |rm < ima|ge > ima|
|00003c20| 67 65 32 0a 58 20 2a 0a | 58 20 2a 20 45 44 49 54 |ge2.X *.|X * EDIT|
|00003c30| 4c 4f 47 0a 58 20 2a 20 | 20 20 20 20 20 4c 61 73 |LOG.X * | Las|
|00003c40| 74 45 64 69 74 44 61 74 | 65 20 3d 20 54 75 65 20 |tEditDat|e = Tue |
|00003c50| 4d 61 72 20 20 37 20 31 | 39 3a 35 36 3a 33 35 20 |Mar 7 1|9:56:35 |
|00003c60| 31 39 38 39 20 2d 20 4d | 69 63 68 61 65 6c 20 4d |1989 - M|ichael M|
|00003c70| 61 75 6c 64 69 6e 0a 58 | 20 2a 20 20 20 20 20 20 |auldin.X| * |
|00003c80| 4c 61 73 74 46 69 6c 65 | 4e 61 6d 65 20 3d 20 2f |LastFile|Name = /|
|00003c90| 75 73 72 32 2f 6d 6c 6d | 2f 73 72 63 2f 6d 69 73 |usr2/mlm|/src/mis|
|00003ca0| 63 2f 66 62 6d 2f 66 62 | 6e 6f 72 6d 2e 63 0a 58 |c/fbm/fb|norm.c.X|
|00003cb0| 20 2a 0a 58 20 2a 20 48 | 49 53 54 4f 52 59 0a 58 | *.X * H|ISTORY.X|
|00003cc0| 20 2a 20 30 37 2d 4d 61 | 72 2d 38 39 20 20 4d 69 | * 07-Ma|r-89 Mi|
|00003cd0| 63 68 61 65 6c 20 4d 61 | 75 6c 64 69 6e 20 28 6d |chael Ma|uldin (m|
|00003ce0| 6c 6d 29 20 61 74 20 43 | 61 72 6e 65 67 69 65 20 |lm) at C|arnegie |
|00003cf0| 4d 65 6c 6c 6f 6e 20 55 | 6e 69 76 65 72 73 69 74 |Mellon U|niversit|
|00003d00| 79 0a 58 20 2a 09 42 65 | 74 61 20 72 65 6c 65 61 |y.X *.Be|ta relea|
|00003d10| 73 65 20 28 76 65 72 73 | 69 6f 6e 20 30 2e 39 29 |se (vers|ion 0.9)|
|00003d20| 20 6d 6c 6d 40 63 73 2e | 63 6d 75 2e 65 64 75 0a | mlm@cs.|cmu.edu.|
|00003d30| 58 20 2a 0a 58 20 2a 20 | 32 31 2d 41 75 67 2d 38 |X *.X * |21-Aug-8|
|00003d40| 38 20 20 4d 69 63 68 61 | 65 6c 20 4d 61 75 6c 64 |8 Micha|el Mauld|
|00003d50| 69 6e 20 28 6d 6c 6d 29 | 20 61 74 20 43 61 72 6e |in (mlm)| at Carn|
|00003d60| 65 67 69 65 2d 4d 65 6c | 6c 6f 6e 20 55 6e 69 76 |egie-Mel|lon Univ|
|00003d70| 65 72 73 69 74 79 0a 58 | 20 2a 20 20 20 20 20 20 |ersity.X| * |
|00003d80| 43 72 65 61 74 65 64 2e | 0a 58 20 2a 2a 2a 2a 2a |Created.|.X *****|
|00003d90| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003da0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003db0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00003dc0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2f 0a 58 0a |********|****/.X.|
|00003dd0| 58 23 20 69 6e 63 6c 75 | 64 65 20 3c 73 74 64 69 |X# inclu|de <stdi|
|00003de0| 6f 2e 68 3e 0a 58 23 20 | 69 6e 63 6c 75 64 65 20 |o.h>.X# |include |
|00003df0| 3c 6d 61 74 68 2e 68 3e | 0a 58 23 20 69 6e 63 6c |<math.h>|.X# incl|
|00003e00| 75 64 65 20 3c 63 74 79 | 70 65 2e 68 3e 0a 58 23 |ude <cty|pe.h>.X#|
|00003e10| 20 69 6e 63 6c 75 64 65 | 20 22 66 62 6d 2e 68 22 | include| "fbm.h"|
|00003e20| 0a 58 0a 58 23 20 64 65 | 66 69 6e 65 20 55 53 41 |.X.X# de|fine USA|
|00003e30| 47 45 20 5c 0a 58 09 22 | 55 73 61 67 65 3a 20 66 |GE \.X."|Usage: f|
|00003e40| 62 6e 6f 72 6d 20 5b 20 | 2d 62 3c 76 61 6c 3e 20 |bnorm [ |-b<val> |
|00003e50| 2d 77 3c 76 61 6c 3e 20 | 5d 20 5b 20 2d 3c 74 79 |-w<val> |] [ -<ty|
|00003e60| 70 65 3e 20 5d 20 3c 20 | 69 6d 61 67 65 20 3e 20 |pe> ] < |image > |
|00003e70| 69 6d 61 67 65 22 0a 58 | 0a 58 23 69 66 6e 64 65 |image".X|.X#ifnde|
|00003e80| 66 20 6c 69 6e 74 0a 58 | 73 74 61 74 69 63 20 63 |f lint.X|static c|
|00003e90| 68 61 72 20 2a 66 62 6d | 69 64 20 3d 0a 58 09 22 |har *fbm|id =.X."|
|00003ea0| 24 46 42 4d 20 66 62 6e | 6f 72 6d 2e 63 20 3c 30 |$FBM fbn|orm.c <0|
|00003eb0| 2e 39 3e 20 30 37 2d 4d | 61 72 2d 38 39 20 20 28 |.9> 07-M|ar-89 (|
|00003ec0| 43 29 20 31 39 38 39 20 | 62 79 20 4d 69 63 68 61 |C) 1989 |by Micha|
|00003ed0| 65 6c 20 4d 61 75 6c 64 | 69 6e 24 22 3b 0a 58 23 |el Mauld|in$";.X#|
|00003ee0| 65 6e 64 69 66 0a 58 0a | 58 6d 61 69 6e 20 28 61 |endif.X.|Xmain (a|
|00003ef0| 72 67 63 2c 20 61 72 67 | 76 29 0a 58 63 68 61 72 |rgc, arg|v).Xchar|
|00003f00| 20 2a 61 72 67 76 5b 5d | 3b 0a 58 7b 20 46 42 4d | *argv[]|;.X{ FBM|
|00003f10| 20 69 6d 61 67 65 3b 0a | 58 20 20 72 65 67 69 73 | image;.|X regis|
|00003f20| 74 65 72 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |ter unsi|gned cha|
|00003f30| 72 20 2a 62 6d 70 74 72 | 2c 20 2a 74 61 69 6c 3b |r *bmptr|, *tail;|
|00003f40| 0a 58 20 20 72 65 67 69 | 73 74 65 72 20 69 6e 74 |.X regi|ster int|
|00003f50| 20 6a 2c 20 6b 2c 20 63 | 68 2c 20 73 69 7a 65 2c | j, k, c|h, size,|
|00003f60| 20 63 6e 74 3b 0a 58 20 | 20 69 6e 74 20 6d 69 6e | cnt;.X | int min|
|00003f70| 20 3d 20 2d 31 2c 20 6d | 61 78 20 3d 20 2d 31 2c | = -1, m|ax = -1,|
|00003f80| 20 63 75 74 6f 66 66 3b | 0a 58 20 20 69 6e 74 20 | cutoff;|.X int |
|00003f90| 68 69 73 74 5b 42 59 54 | 45 5d 3b 0a 58 20 20 64 |hist[BYT|E];.X d|
|00003fa0| 6f 75 62 6c 65 20 62 6c | 61 63 6b 70 20 3d 20 2d |ouble bl|ackp = -|
|00003fb0| 31 2e 30 2c 20 77 68 69 | 74 65 70 20 3d 20 2d 31 |1.0, whi|tep = -1|
|00003fc0| 2e 30 3b 20 20 20 20 2f | 2a 20 50 65 72 63 65 6e |.0; /|* Percen|
|00003fd0| 74 20 2a 2f 0a 58 20 20 | 69 6e 74 20 6f 75 74 74 |t */.X |int outt|
|00003fe0| 79 70 65 20 3d 20 46 4d | 54 5f 46 42 4d 3b 0a 58 |ype = FM|T_FBM;.X|
|00003ff0| 0a 58 20 20 2f 2a 20 47 | 65 74 20 74 68 65 20 6f |.X /* G|et the o|
|00004000| 70 74 69 6f 6e 73 20 2a | 2f 0a 58 20 20 77 68 69 |ptions *|/.X whi|
|00004010| 6c 65 20 28 2d 2d 61 72 | 67 63 20 3e 20 30 20 26 |le (--ar|gc > 0 &|
|00004020| 26 20 28 2a 2b 2b 61 72 | 67 76 29 5b 30 5d 20 3d |& (*++ar|gv)[0] =|
|00004030| 3d 20 27 2d 27 29 0a 58 | 20 20 7b 20 77 68 69 6c |= '-').X| { whil|
|00004040| 65 20 28 2a 2b 2b 28 2a | 61 72 67 76 29 29 0a 58 |e (*++(*|argv)).X|
|00004050| 20 20 20 20 7b 20 73 77 | 69 74 63 68 20 28 2a 2a | { sw|itch (**|
|00004060| 61 72 67 76 29 0a 58 20 | 20 20 20 20 20 7b 20 63 |argv).X | { c|
|00004070| 61 73 65 20 27 62 27 3a | 20 20 20 20 20 20 20 62 |ase 'b':| b|
|00004080| 6c 61 63 6b 70 20 3d 20 | 61 74 6f 66 20 28 2a 61 |lackp = |atof (*a|
|00004090| 72 67 76 2b 31 29 3b 20 | 53 4b 49 50 41 52 47 3b |rgv+1); |SKIPARG;|
|000040a0| 20 62 72 65 61 6b 3b 0a | 58 20 20 20 20 20 20 20 | break;.|X |
|000040b0| 20 63 61 73 65 20 27 77 | 27 3a 20 20 20 20 20 20 | case 'w|': |
|000040c0| 20 77 68 69 74 65 70 20 | 3d 20 61 74 6f 66 20 28 | whitep |= atof (|
|000040d0| 2a 61 72 67 76 2b 31 29 | 3b 20 53 4b 49 50 41 52 |*argv+1)|; SKIPAR|
|000040e0| 47 3b 20 62 72 65 61 6b | 3b 0a 58 09 63 61 73 65 |G; break|;.X.case|
|000040f0| 20 27 41 27 3a 09 6f 75 | 74 74 79 70 65 20 3d 20 | 'A':.ou|ttype = |
|00004100| 46 4d 54 5f 41 54 4b 3b | 20 62 72 65 61 6b 3b 0a |FMT_ATK;| break;.|
|00004110| 58 09 63 61 73 65 20 27 | 42 27 3a 09 6f 75 74 74 |X.case '|B':.outt|
|00004120| 79 70 65 20 3d 20 46 4d | 54 5f 46 41 43 45 3b 20 |ype = FM|T_FACE; |
|00004130| 62 72 65 61 6b 3b 0a 58 | 09 63 61 73 65 20 27 46 |break;.X|.case 'F|
|00004140| 27 3a 09 6f 75 74 74 79 | 70 65 20 3d 20 46 4d 54 |':.outty|pe = FMT|
|00004150| 5f 46 42 4d 3b 20 62 72 | 65 61 6b 3b 0a 58 09 63 |_FBM; br|eak;.X.c|
|00004160| 61 73 65 20 27 47 27 3a | 09 6f 75 74 74 79 70 65 |ase 'G':|.outtype|
|00004170| 20 3d 20 46 4d 54 5f 47 | 49 46 3b 20 62 72 65 61 | = FMT_G|IF; brea|
|00004180| 6b 3b 0a 58 09 63 61 73 | 65 20 27 49 27 3a 09 6f |k;.X.cas|e 'I':.o|
|00004190| 75 74 74 79 70 65 20 3d | 20 46 4d 54 5f 49 46 46 |uttype =| FMT_IFF|
|000041a0| 3b 20 62 72 65 61 6b 3b | 0a 58 09 63 61 73 65 20 |; break;|.X.case |
|000041b0| 27 4c 27 3a 09 6f 75 74 | 74 79 70 65 20 3d 20 46 |'L':.out|type = F|
|000041c0| 4d 54 5f 4c 45 41 46 3b | 20 62 72 65 61 6b 3b 0a |MT_LEAF;| break;.|
|000041d0| 58 09 63 61 73 65 20 27 | 4d 27 3a 09 6f 75 74 74 |X.case '|M':.outt|
|000041e0| 79 70 65 20 3d 20 46 4d | 54 5f 4d 43 50 3b 20 62 |ype = FM|T_MCP; b|
|000041f0| 72 65 61 6b 3b 0a 58 09 | 63 61 73 65 20 27 50 27 |reak;.X.|case 'P'|
|00004200| 3a 09 6f 75 74 74 79 70 | 65 20 3d 20 46 4d 54 5f |:.outtyp|e = FMT_|
|00004210| 50 42 4d 3b 20 62 72 65 | 61 6b 3b 0a 58 09 63 61 |PBM; bre|ak;.X.ca|
|00004220| 73 65 20 27 53 27 3a 09 | 6f 75 74 74 79 70 65 20 |se 'S':.|outtype |
|00004230| 3d 20 46 4d 54 5f 53 55 | 4e 3b 20 62 72 65 61 6b |= FMT_SU|N; break|
|00004240| 3b 0a 58 09 63 61 73 65 | 20 27 54 27 3a 09 6f 75 |;.X.case| 'T':.ou|
|00004250| 74 74 79 70 65 20 3d 20 | 46 4d 54 5f 54 49 46 46 |ttype = |FMT_TIFF|
|00004260| 3b 20 62 72 65 61 6b 3b | 0a 58 09 63 61 73 65 20 |; break;|.X.case |
|00004270| 27 58 27 3a 09 6f 75 74 | 74 79 70 65 20 3d 20 46 |'X':.out|type = F|
|00004280| 4d 54 5f 58 31 31 3b 20 | 62 72 65 61 6b 3b 0a 58 |MT_X11; |break;.X|
|00004290| 09 63 61 73 65 20 27 5a | 27 3a 09 6f 75 74 74 79 |.case 'Z|':.outty|
|000042a0| 70 65 20 3d 20 46 4d 54 | 5f 50 43 58 3b 20 62 72 |pe = FMT|_PCX; br|
|000042b0| 65 61 6b 3b 0a 58 20 20 | 20 20 20 20 20 20 64 65 |eak;.X | de|
|000042c0| 66 61 75 6c 74 3a 20 20 | 20 20 20 20 20 20 66 70 |fault: | fp|
|000042d0| 72 69 6e 74 66 20 28 73 | 74 64 65 72 72 2c 20 22 |rintf (s|tderr, "|
|000042e0| 25 73 5c 6e 22 2c 20 55 | 53 41 47 45 29 3b 0a 58 |%s\n", U|SAGE);.X|
|000042f0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00004300| 20 20 20 20 20 20 20 20 | 65 78 69 74 20 28 31 29 | |exit (1)|
|00004310| 3b 0a 58 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |;.X | }.X |
|00004320| 7d 0a 58 20 20 7d 0a 58 | 0a 58 20 20 69 66 20 28 |}.X }.X|.X if (|
|00004330| 61 72 67 63 20 3d 3d 20 | 31 29 0a 58 20 20 7b 20 |argc == |1).X { |
|00004340| 62 6c 61 63 6b 70 20 3d | 20 77 68 69 74 65 70 20 |blackp =| whitep |
|00004350| 3d 20 61 74 6f 66 20 28 | 61 72 67 76 5b 30 5d 29 |= atof (|argv[0])|
|00004360| 3b 20 7d 0a 58 20 20 65 | 6c 73 65 20 69 66 20 28 |; }.X e|lse if (|
|00004370| 61 72 67 63 20 3d 3d 20 | 32 29 0a 58 20 20 7b 20 |argc == |2).X { |
|00004380| 6d 69 6e 20 3d 20 61 74 | 6f 69 20 28 61 72 67 76 |min = at|oi (argv|
|00004390| 5b 30 5d 29 3b 20 6d 61 | 78 20 3d 20 61 74 6f 69 |[0]); ma|x = atoi|
|000043a0| 20 28 61 72 67 76 5b 31 | 5d 29 3b 20 7d 0a 58 20 | (argv[1|]); }.X |
|000043b0| 20 65 6c 73 65 20 69 66 | 20 28 61 72 67 63 20 3e | else if| (argc >|
|000043c0| 20 32 29 0a 58 20 20 7b | 20 66 70 72 69 6e 74 66 | 2).X {| fprintf|
|000043d0| 20 28 73 74 64 65 72 72 | 2c 20 22 25 73 5c 6e 22 | (stderr|, "%s\n"|
|000043e0| 2c 20 55 53 41 47 45 29 | 3b 0a 58 20 20 20 20 65 |, USAGE)|;.X e|
|000043f0| 78 69 74 20 28 31 29 3b | 0a 58 20 20 7d 0a 58 20 |xit (1);|.X }.X |
|00004400| 20 0a 58 20 20 2f 2a 20 | 43 6c 65 61 72 20 74 68 | .X /* |Clear th|
|00004410| 65 20 6d 65 6d 6f 72 79 | 20 70 6f 69 6e 74 65 72 |e memory| pointer|
|00004420| 20 73 6f 20 61 6c 6c 6f | 63 5f 66 62 6d 20 77 6f | so allo|c_fbm wo|
|00004430| 6e 27 74 20 62 65 20 63 | 6f 6e 66 75 73 65 64 20 |n't be c|onfused |
|00004440| 2a 2f 0a 58 20 20 69 6d | 61 67 65 2e 63 6d 20 20 |*/.X im|age.cm |
|00004450| 3d 20 69 6d 61 67 65 2e | 62 6d 20 20 3d 20 28 75 |= image.|bm = (u|
|00004460| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 2a 29 20 |nsigned |char *) |
|00004470| 4e 55 4c 4c 3b 0a 58 0a | 58 20 20 2f 2a 20 4e 6f |NULL;.X.|X /* No|
|00004480| 77 20 72 65 61 64 20 69 | 6e 20 74 68 65 20 69 6d |w read i|n the im|
|00004490| 61 67 65 20 2a 2f 0a 58 | 20 20 69 66 20 28 72 65 |age */.X| if (re|
|000044a0| 61 64 5f 62 69 74 6d 61 | 70 20 28 26 69 6d 61 67 |ad_bitma|p (&imag|
|000044b0| 65 2c 20 28 63 68 61 72 | 20 2a 29 20 4e 55 4c 4c |e, (char| *) NULL|
|000044c0| 29 29 0a 58 20 20 7b 20 | 0a 58 20 20 20 20 2f 2a |)).X { |.X /*|
|000044d0| 20 43 68 65 63 6b 20 69 | 6e 70 75 74 20 74 79 70 | Check i|nput typ|
|000044e0| 65 20 2a 2f 0a 58 20 20 | 20 20 69 66 20 28 69 6d |e */.X | if (im|
|000044f0| 61 67 65 2e 68 64 72 2e | 70 68 79 73 62 69 74 73 |age.hdr.|physbits|
|00004500| 20 21 3d 20 38 29 0a 58 | 20 20 20 20 7b 20 66 70 | != 8).X| { fp|
|00004510| 72 69 6e 74 66 20 28 73 | 74 64 65 72 72 2c 0a 58 |rintf (s|tderr,.X|
|00004520| 09 20 20 20 20 20 20 20 | 22 43 61 6e 27 74 20 72 |. |"Can't r|
|00004530| 65 73 69 7a 65 20 69 6d | 61 67 65 73 20 77 69 74 |esize im|ages wit|
|00004540| 68 20 25 64 20 70 68 79 | 73 69 63 61 6c 20 62 69 |h %d phy|sical bi|
|00004550| 74 73 20 70 65 72 20 70 | 69 78 65 6c 5c 6e 22 2c |ts per p|ixel\n",|
|00004560| 0a 58 09 20 20 20 20 20 | 20 20 69 6d 61 67 65 2e |.X. | image.|
|00004570| 68 64 72 2e 70 68 79 73 | 62 69 74 73 29 3b 0a 58 |hdr.phys|bits);.X|
|00004580| 20 20 20 20 20 20 65 78 | 69 74 20 28 31 29 3b 0a | ex|it (1);.|
|00004590| 58 20 20 20 20 7d 0a 58 | 0a 58 20 20 20 20 2f 2a |X }.X|.X /*|
|000045a0| 20 53 65 74 20 64 65 66 | 61 75 6c 74 20 74 61 69 | Set def|ault tai|
|000045b0| 6c 20 73 69 7a 65 73 20 | 2a 2f 0a 58 20 20 20 20 |l sizes |*/.X |
|000045c0| 69 66 20 28 69 6d 61 67 | 65 2e 68 64 72 2e 70 6c |if (imag|e.hdr.pl|
|000045d0| 61 6e 65 73 20 3e 20 31 | 29 09 09 2f 2a 20 43 6f |anes > 1|)../* Co|
|000045e0| 6c 6f 72 20 64 65 66 61 | 75 6c 74 73 20 2a 2f 0a |lor defa|ults */.|
|000045f0| 58 20 20 20 20 7b 20 69 | 66 20 28 62 6c 61 63 6b |X { i|f (black|
|00004600| 70 20 3c 20 30 2e 30 29 | 20 62 6c 61 63 6b 70 20 |p < 0.0)| blackp |
|00004610| 3d 20 30 2e 35 3b 0a 58 | 20 20 20 20 20 20 69 66 |= 0.5;.X| if|
|00004620| 20 28 77 68 69 74 65 70 | 20 3c 20 30 2e 30 29 20 | (whitep| < 0.0) |
|00004630| 77 68 69 74 65 70 20 3d | 20 30 2e 35 3b 0a 58 20 |whitep =| 0.5;.X |
|00004640| 20 20 20 7d 0a 58 20 20 | 20 20 65 6c 73 65 09 09 | }.X | else..|
|00004650| 09 09 2f 2a 20 42 77 20 | 64 65 66 61 75 6c 74 73 |../* Bw |defaults|
|00004660| 20 2a 2f 0a 58 20 20 20 | 20 7b 20 69 66 20 28 62 | */.X | { if (b|
|00004670| 6c 61 63 6b 70 20 3c 20 | 30 2e 30 29 20 62 6c 61 |lackp < |0.0) bla|
|00004680| 63 6b 70 20 3d 20 32 2e | 30 3b 0a 58 20 20 20 20 |ckp = 2.|0;.X |
|00004690| 20 20 69 66 20 28 77 68 | 69 74 65 70 20 3c 20 30 | if (wh|itep < 0|
|000046a0| 2e 30 29 20 77 68 69 74 | 65 70 20 3d 20 31 2e 30 |.0) whit|ep = 1.0|
|000046b0| 3b 0a 58 20 20 20 20 7d | 0a 58 0a 58 20 20 20 20 |;.X }|.X.X |
|000046c0| 73 69 7a 65 20 3d 20 69 | 6d 61 67 65 2e 68 64 72 |size = i|mage.hdr|
|000046d0| 2e 72 6f 77 73 20 2a 20 | 69 6d 61 67 65 2e 68 64 |.rows * |image.hd|
|000046e0| 72 2e 63 6f 6c 73 20 2a | 20 69 6d 61 67 65 2e 68 |r.cols *| image.h|
|000046f0| 64 72 2e 70 6c 61 6e 65 | 73 3b 0a 58 0a 58 20 20 |dr.plane|s;.X.X |
|00004700| 20 20 2f 2a 20 43 61 6c | 63 75 6c 61 74 65 20 6d | /* Cal|culate m|
|00004710| 69 6e 20 61 6e 64 20 6d | 61 78 20 28 69 66 20 6e |in and m|ax (if n|
|00004720| 6f 74 20 67 69 76 65 6e | 20 61 73 20 61 72 67 75 |ot given| as argu|
|00004730| 6d 65 6e 74 73 29 20 2a | 2f 0a 58 20 20 20 20 69 |ments) *|/.X i|
|00004740| 66 20 28 6d 69 6e 20 3c | 20 30 20 7c 7c 20 6d 61 |f (min <| 0 || ma|
|00004750| 78 20 3c 20 30 29 0a 58 | 20 20 20 20 7b 0a 58 20 |x < 0).X| {.X |
|00004760| 20 20 20 20 20 2f 2a 20 | 43 6f 6d 70 75 74 65 20 | /* |Compute |
|00004770| 68 69 73 74 6f 67 72 61 | 6d 20 2a 2f 0a 58 20 20 |histogra|m */.X |
|00004780| 20 20 20 20 66 6f 72 20 | 28 63 68 3d 30 3b 20 63 | for |(ch=0; c|
|00004790| 68 3c 42 59 54 45 3b 20 | 63 68 2b 2b 29 0a 58 20 |h<BYTE; |ch++).X |
|000047a0| 20 20 20 20 20 7b 20 68 | 69 73 74 5b 63 68 5d 20 | { h|ist[ch] |
|000047b0| 3d 20 30 3b 20 7d 0a 58 | 20 20 0a 58 20 20 20 20 |= 0; }.X| .X |
|000047c0| 20 20 66 6f 72 20 28 6b | 3d 30 3b 20 6b 3c 69 6d | for (k|=0; k<im|
|000047d0| 61 67 65 2e 68 64 72 2e | 70 6c 61 6e 65 73 3b 20 |age.hdr.|planes; |
|000047e0| 6b 2b 2b 29 0a 58 20 20 | 20 20 20 20 7b 20 66 6f |k++).X | { fo|
|000047f0| 72 20 28 6a 3d 30 3b 20 | 6a 3c 20 69 6d 61 67 65 |r (j=0; |j< image|
|00004800| 2e 68 64 72 2e 72 6f 77 | 73 3b 20 6a 2b 2b 29 0a |.hdr.row|s; j++).|
|00004810| 58 20 20 20 20 20 20 20 | 20 7b 20 62 6d 70 74 72 |X | { bmptr|
|00004820| 20 3d 20 26 28 69 6d 61 | 67 65 2e 62 6d 5b 6b 2a | = &(ima|ge.bm[k*|
|00004830| 69 6d 61 67 65 2e 68 64 | 72 2e 70 6c 6e 6c 65 6e |image.hd|r.plnlen|
|00004840| 20 2b 20 6a 2a 69 6d 61 | 67 65 2e 68 64 72 2e 72 | + j*ima|ge.hdr.r|
|00004850| 6f 77 6c 65 6e 5d 29 3b | 0a 58 20 20 20 20 20 20 |owlen]);|.X |
|00004860| 20 20 20 20 74 61 69 6c | 20 3d 20 62 6d 70 74 72 | tail| = bmptr|
|00004870| 20 2b 20 69 6d 61 67 65 | 2e 68 64 72 2e 63 6f 6c | + image|.hdr.col|
|00004880| 73 3b 0a 58 20 20 20 20 | 20 20 20 20 20 20 0a 58 |s;.X | .X|
|00004890| 20 20 20 20 20 20 20 20 | 20 20 77 68 69 6c 65 20 | | while |
|000048a0| 28 62 6d 70 74 72 20 3c | 20 74 61 69 6c 29 0a 58 |(bmptr <| tail).X|
|000048b0| 20 20 20 20 20 20 20 20 | 20 20 7b 20 68 69 73 74 | | { hist|
|000048c0| 5b 2a 62 6d 70 74 72 2b | 2b 5d 2b 2b 3b 20 7d 0a |[*bmptr+|+]++; }.|
|000048d0| 58 20 20 20 20 20 20 20 | 20 7d 0a 58 20 20 20 20 |X | }.X |
|000048e0| 20 20 7d 0a 58 0a 58 20 | 20 20 20 20 20 2f 2a 20 | }.X.X | /* |
|000048f0| 54 61 6b 65 20 6f 66 66 | 20 27 62 6c 61 63 6b 70 |Take off| 'blackp|
|00004900| 27 20 70 65 72 63 65 6e | 74 20 6f 66 20 64 61 72 |' percen|t of dar|
|00004910| 6b 65 73 74 20 70 69 78 | 65 6c 73 20 2a 2f 20 20 |kest pix|els */ |
|00004920| 20 20 20 20 0a 58 20 20 | 20 20 20 20 63 75 74 6f | .X | cuto|
|00004930| 66 66 20 3d 20 73 69 7a | 65 20 2a 20 62 6c 61 63 |ff = siz|e * blac|
|00004940| 6b 70 20 2f 20 31 30 30 | 2e 30 3b 0a 58 0a 58 20 |kp / 100|.0;.X.X |
|00004950| 20 20 20 20 20 66 6f 72 | 20 28 63 68 3d 30 2c 20 | for| (ch=0, |
|00004960| 63 6e 74 3d 30 3b 20 63 | 68 3c 42 59 54 45 3b 20 |cnt=0; c|h<BYTE; |
|00004970| 63 68 2b 2b 29 0a 58 20 | 20 20 20 20 20 7b 20 69 |ch++).X | { i|
|00004980| 66 20 28 28 63 6e 74 20 | 2b 3d 20 68 69 73 74 5b |f ((cnt |+= hist[|
|00004990| 63 68 5d 29 20 3e 20 63 | 75 74 6f 66 66 29 0a 58 |ch]) > c|utoff).X|
|000049a0| 20 20 20 20 20 20 20 20 | 7b 20 6d 69 6e 20 3d 20 | |{ min = |
|000049b0| 63 68 3b 20 62 72 65 61 | 6b 3b 20 7d 0a 58 20 20 |ch; brea|k; }.X |
|000049c0| 20 20 20 20 7d 0a 58 0a | 58 20 20 20 20 20 20 2f | }.X.|X /|
|000049d0| 2a 20 54 61 6b 65 20 6f | 66 66 20 27 77 68 69 74 |* Take o|ff 'whit|
|000049e0| 65 70 27 20 70 65 72 63 | 65 6e 74 20 6f 66 20 64 |ep' perc|ent of d|
|000049f0| 61 72 6b 65 73 74 20 70 | 69 78 65 6c 73 20 2a 2f |arkest p|ixels */|
|00004a00| 20 20 20 20 20 20 0a 58 | 20 20 20 20 20 20 63 75 | .X| cu|
|00004a10| 74 6f 66 66 20 3d 20 73 | 69 7a 65 20 2a 20 77 68 |toff = s|ize * wh|
|00004a20| 69 74 65 70 20 2f 20 31 | 30 30 2e 30 3b 0a 58 0a |itep / 1|00.0;.X.|
|00004a30| 58 20 20 20 20 20 20 66 | 6f 72 20 28 63 68 20 3d |X f|or (ch =|
|00004a40| 20 42 59 54 45 2d 31 2c | 20 63 6e 74 3d 30 3b 20 | BYTE-1,| cnt=0; |
|00004a50| 63 68 20 3e 3d 20 30 3b | 20 63 68 2d 2d 29 0a 58 |ch >= 0;| ch--).X|
|00004a60| 20 20 20 20 20 20 7b 20 | 69 66 20 28 28 63 6e 74 | { |if ((cnt|
|00004a70| 20 2b 3d 20 68 69 73 74 | 5b 63 68 5d 29 20 3e 20 | += hist|[ch]) > |
|00004a80| 63 75 74 6f 66 66 29 0a | 58 20 20 20 20 20 20 20 |cutoff).|X |
|00004a90| 20 7b 20 6d 61 78 20 3d | 20 63 68 3b 20 62 72 65 | { max =| ch; bre|
|00004aa0| 61 6b 3b 20 7d 0a 58 20 | 20 20 20 20 20 7d 0a 58 |ak; }.X | }.X|
|00004ab0| 20 20 20 20 7d 0a 58 20 | 20 20 20 20 20 0a 58 20 | }.X | .X |
|00004ac0| 20 20 20 66 70 72 69 6e | 74 66 20 28 73 74 64 65 | fprin|tf (stde|
|00004ad0| 72 72 2c 20 22 4e 6f 72 | 6d 61 6c 69 7a 69 6e 67 |rr, "Nor|malizing|
|00004ae0| 3a 20 5c 22 25 73 5c 22 | 20 3c 25 64 2c 25 64 3e |: \"%s\"| <%d,%d>|
|00004af0| 20 3d 3d 3e 20 3c 30 2e | 2e 32 35 35 3e 5c 6e 22 | ==> <0.|.255>\n"|
|00004b00| 2c 0a 58 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |,.X | |
|00004b10| 69 6d 61 67 65 2e 68 64 | 72 2e 74 69 74 6c 65 5b |image.hd|r.title[|
|00004b20| 30 5d 20 3f 20 69 6d 61 | 67 65 2e 68 64 72 2e 74 |0] ? ima|ge.hdr.t|
|00004b30| 69 74 6c 65 20 3a 20 22 | 28 75 6e 74 69 74 6c 65 |itle : "|(untitle|
|00004b40| 64 29 22 2c 20 6d 69 6e | 2c 20 6d 61 78 29 3b 0a |d)", min|, max);.|
|00004b50| 58 0a 58 20 20 20 20 62 | 6d 70 74 72 20 3d 20 69 |X.X b|mptr = i|
|00004b60| 6d 61 67 65 2e 62 6d 3b | 0a 58 20 20 20 20 74 61 |mage.bm;|.X ta|
|00004b70| 69 6c 20 3d 20 62 6d 70 | 74 72 2b 73 69 7a 65 3b |il = bmp|tr+size;|
|00004b80| 0a 58 0a 58 20 20 20 20 | 77 68 69 6c 65 20 28 62 |.X.X |while (b|
|00004b90| 6d 70 74 72 20 3c 20 74 | 61 69 6c 29 0a 58 20 20 |mptr < t|ail).X |
|00004ba0| 20 20 7b 20 63 68 20 3d | 20 2a 62 6d 70 74 72 3b | { ch =| *bmptr;|
|00004bb0| 0a 58 0a 58 20 20 20 20 | 20 20 69 66 20 28 63 68 |.X.X | if (ch|
|00004bc0| 20 3c 3d 20 6d 69 6e 29 | 0a 58 20 20 20 20 20 20 | <= min)|.X |
|00004bd0| 7b 20 63 68 20 3d 20 30 | 3b 20 7d 0a 58 20 20 20 |{ ch = 0|; }.X |
|00004be0| 20 20 20 65 6c 73 65 20 | 69 66 20 28 63 68 20 3e | else |if (ch >|
|00004bf0| 3d 20 6d 61 78 29 0a 58 | 20 20 20 20 20 20 7b 20 |= max).X| { |
|00004c00| 63 68 20 3d 20 32 35 35 | 3b 20 7d 0a 58 20 20 20 |ch = 255|; }.X |
|00004c10| 20 20 20 65 6c 73 65 0a | 58 20 20 20 20 20 20 7b | else.|X {|
|00004c20| 20 63 68 20 3d 20 28 63 | 68 20 2d 20 6d 69 6e 29 | ch = (c|h - min)|
|00004c30| 20 2a 20 32 35 35 20 2f | 20 28 6d 61 78 20 2d 20 | * 255 /| (max - |
|00004c40| 6d 69 6e 29 3b 20 7d 0a | 58 0a 58 20 20 20 20 20 |min); }.|X.X |
|00004c50| 20 20 69 66 20 28 63 68 | 20 3c 20 30 20 7c 7c 20 | if (ch| < 0 || |
|00004c60| 63 68 20 3e 20 32 35 35 | 29 0a 58 20 20 20 20 20 |ch > 255|).X |
|00004c70| 20 20 7b 20 66 70 72 69 | 6e 74 66 20 28 73 74 64 | { fpri|ntf (std|
|00004c80| 65 72 72 2c 20 22 72 61 | 77 20 25 64 2c 20 6d 69 |err, "ra|w %d, mi|
|00004c90| 6e 20 25 64 2c 20 6d 61 | 78 20 25 64 2c 20 6f 75 |n %d, ma|x %d, ou|
|00004ca0| 74 20 25 64 5c 6e 22 2c | 0a 58 20 20 20 20 20 20 |t %d\n",|.X |
|00004cb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 2a 62 6d 70 | | *bmp|
|00004cc0| 74 72 2c 20 6d 69 6e 2c | 20 6d 61 78 2c 20 63 68 |tr, min,| max, ch|
|00004cd0| 29 3b 0a 58 20 20 20 20 | 20 20 20 7d 0a 58 0a 58 |);.X | }.X.X|
|00004ce0| 20 20 20 20 20 20 2a 62 | 6d 70 74 72 2b 2b 20 3d | *b|mptr++ =|
|00004cf0| 20 63 68 3b 0a 58 20 20 | 20 20 7d 0a 58 20 20 20 | ch;.X | }.X |
|00004d00| 20 0a 58 20 20 20 20 2f | 2a 20 54 68 65 20 69 6d | .X /|* The im|
|00004d10| 61 67 65 20 69 73 20 6e | 6f 77 20 61 6e 20 38 62 |age is n|ow an 8b|
|00004d20| 69 74 20 70 65 72 20 70 | 69 78 65 6c 20 69 6d 61 |it per p|ixel ima|
|00004d30| 67 65 20 2a 2f 0a 58 20 | 20 20 20 69 6d 61 67 65 |ge */.X | image|
|00004d40| 2e 68 64 72 2e 62 69 74 | 73 20 3d 20 38 3b 0a 58 |.hdr.bit|s = 8;.X|
|00004d50| 0a 58 20 20 20 20 2f 2a | 20 57 72 69 74 65 20 69 |.X /*| Write i|
|00004d60| 74 20 6f 75 74 20 2a 2f | 0a 58 20 20 20 20 77 72 |t out */|.X wr|
|00004d70| 69 74 65 5f 62 69 74 6d | 61 70 20 28 26 69 6d 61 |ite_bitm|ap (&ima|
|00004d80| 67 65 2c 20 73 74 64 6f | 75 74 2c 20 6f 75 74 74 |ge, stdo|ut, outt|
|00004d90| 79 70 65 29 3b 0a 58 20 | 20 7d 0a 58 20 20 65 6c |ype);.X | }.X el|
|00004da0| 73 65 0a 58 20 20 7b 20 | 65 78 69 74 20 28 31 29 |se.X { |exit (1)|
|00004db0| 3b 20 7d 0a 58 20 20 0a | 58 20 20 65 78 69 74 20 |; }.X .|X exit |
|00004dc0| 28 30 29 3b 0a 58 7d 0a | 45 4e 44 5f 4f 46 5f 46 |(0);.X}.|END_OF_F|
|00004dd0| 49 4c 45 0a 69 66 20 74 | 65 73 74 20 34 38 30 31 |ILE.if t|est 4801|
|00004de0| 20 2d 6e 65 20 60 77 63 | 20 2d 63 20 3c 27 66 62 | -ne `wc| -c <'fb|
|00004df0| 6e 6f 72 6d 2e 63 27 60 | 3b 20 74 68 65 6e 0a 20 |norm.c'`|; then. |
|00004e00| 20 20 20 65 63 68 6f 20 | 73 68 61 72 3a 20 5c 22 | echo |shar: \"|
|00004e10| 27 66 62 6e 6f 72 6d 2e | 63 27 5c 22 20 75 6e 70 |'fbnorm.|c'\" unp|
|00004e20| 61 63 6b 65 64 20 77 69 | 74 68 20 77 72 6f 6e 67 |acked wi|th wrong|
|00004e30| 20 73 69 7a 65 21 0a 66 | 69 0a 23 20 65 6e 64 20 | size!.f|i.# end |
|00004e40| 6f 66 20 27 66 62 6e 6f | 72 6d 2e 63 27 0a 66 69 |of 'fbno|rm.c'.fi|
|00004e50| 0a 69 66 20 74 65 73 74 | 20 2d 66 20 27 66 62 73 |.if test| -f 'fbs|
|00004e60| 61 6d 70 6c 65 2e 63 27 | 20 2d 61 20 22 24 7b 31 |ample.c'| -a "${1|
|00004e70| 7d 22 20 21 3d 20 22 2d | 63 22 20 3b 20 74 68 65 |}" != "-|c" ; the|
|00004e80| 6e 20 0a 20 20 65 63 68 | 6f 20 73 68 61 72 3a 20 |n . ech|o shar: |
|00004e90| 57 69 6c 6c 20 6e 6f 74 | 20 63 6c 6f 62 62 65 72 |Will not| clobber|
|00004ea0| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 5c | existin|g file \|
|00004eb0| 22 27 66 62 73 61 6d 70 | 6c 65 2e 63 27 5c 22 0a |"'fbsamp|le.c'\".|
|00004ec0| 65 6c 73 65 0a 65 63 68 | 6f 20 73 68 61 72 3a 20 |else.ech|o shar: |
|00004ed0| 45 78 74 72 61 63 74 69 | 6e 67 20 5c 22 27 66 62 |Extracti|ng \"'fb|
|00004ee0| 73 61 6d 70 6c 65 2e 63 | 27 5c 22 20 5c 28 34 32 |sample.c|'\" \(42|
|00004ef0| 36 32 20 63 68 61 72 61 | 63 74 65 72 73 5c 29 0a |62 chara|cters\).|
|00004f00| 73 65 64 20 22 73 2f 5e | 58 2f 2f 22 20 3e 27 66 |sed "s/^|X//" >'f|
|00004f10| 62 73 61 6d 70 6c 65 2e | 63 27 20 3c 3c 27 45 4e |bsample.|c' <<'EN|
|00004f20| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2f 2a 2a 2a |D_OF_FIL|E'.X/***|
|00004f30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00004f60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0a 58 |********|******.X|
|00004f70| 20 2a 20 66 62 73 61 6d | 70 6c 65 2e 63 3a 20 46 | * fbsam|ple.c: F|
|00004f80| 42 4d 20 4c 69 62 72 61 | 72 79 20 30 2e 39 34 20 |BM Libra|ry 0.94 |
|00004f90| 28 42 65 74 61 20 74 65 | 73 74 29 20 32 30 2d 4d |(Beta te|st) 20-M|
|00004fa0| 61 79 2d 38 39 20 20 4d | 69 63 68 61 65 6c 20 4d |ay-89 M|ichael M|
|00004fb0| 61 75 6c 64 69 6e 0a 58 | 20 2a 0a 58 20 2a 20 43 |auldin.X| *.X * C|
|00004fc0| 6f 70 79 72 69 67 68 74 | 20 28 43 29 20 31 39 38 |opyright| (C) 198|
|00004fd0| 39 20 62 79 20 4d 69 63 | 68 61 65 6c 20 4d 61 75 |9 by Mic|hael Mau|
|00004fe0| 6c 64 69 6e 2e 20 20 50 | 65 72 6d 69 73 73 69 6f |ldin. P|ermissio|
|00004ff0| 6e 20 69 73 20 67 72 61 | 6e 74 65 64 20 74 6f 0a |n is gra|nted to.|
|00005000| 58 20 2a 20 75 73 65 20 | 74 68 69 73 20 66 69 6c |X * use |this fil|
|00005010| 65 20 69 6e 20 77 68 6f | 6c 65 20 6f 72 20 69 6e |e in who|le or in|
|00005020| 20 70 61 72 74 20 70 72 | 6f 76 69 64 65 64 20 74 | part pr|ovided t|
|00005030| 68 61 74 20 79 6f 75 20 | 64 6f 20 6e 6f 74 20 73 |hat you |do not s|
|00005040| 65 6c 6c 20 69 74 0a 58 | 20 2a 20 66 6f 72 20 70 |ell it.X| * for p|
|00005050| 72 6f 66 69 74 20 61 6e | 64 20 74 68 61 74 20 74 |rofit an|d that t|
|00005060| 68 69 73 20 63 6f 70 79 | 72 69 67 68 74 20 6e 6f |his copy|right no|
|00005070| 74 69 63 65 20 69 73 20 | 72 65 74 61 69 6e 65 64 |tice is |retained|
|00005080| 20 75 6e 63 68 61 6e 67 | 65 64 2e 0a 58 20 2a 0a | unchang|ed..X *.|
|00005090| 58 20 2a 20 66 62 73 61 | 6d 70 6c 65 2e 63 3a 20 |X * fbsa|mple.c: |
|000050a0| 20 31 20 62 69 74 20 74 | 6f 20 38 20 62 69 74 20 | 1 bit t|o 8 bit |
|000050b0| 63 6f 6e 76 65 72 73 69 | 6f 6e 20 62 79 20 73 61 |conversi|on by sa|
|000050c0| 6d 70 6c 69 6e 67 0a 58 | 20 2a 0a 58 20 2a 20 55 |mpling.X| *.X * U|
|000050d0| 53 41 47 45 0a 58 20 2a | 09 25 20 66 62 73 61 6d |SAGE.X *|.% fbsam|
|000050e0| 70 6c 65 20 5b 20 74 69 | 74 6c 65 20 5d 20 3c 20 |ple [ ti|tle ] < |
|000050f0| 66 6f 6f 2e 70 62 6d 20 | 3e 20 66 6f 6f 2e 66 62 |foo.pbm |> foo.fb|
|00005100| 6d 0a 58 20 2a 0a 58 20 | 2a 20 45 44 49 54 4c 4f |m.X *.X |* EDITLO|
|00005110| 47 0a 58 20 2a 09 4c 61 | 73 74 45 64 69 74 44 61 |G.X *.La|stEditDa|
|00005120| 74 65 20 3d 20 53 61 74 | 20 4d 61 79 20 32 30 20 |te = Sat| May 20 |
|00005130| 31 39 3a 30 35 3a 33 33 | 20 31 39 38 39 20 2d 20 |19:05:33| 1989 - |
|00005140| 4d 69 63 68 61 65 6c 20 | 4d 61 75 6c 64 69 6e 0a |Michael |Mauldin.|
|00005150| 58 20 2a 09 4c 61 73 74 | 46 69 6c 65 4e 61 6d 65 |X *.Last|FileName|
|00005160| 20 3d 20 2f 75 73 72 32 | 2f 6d 6c 6d 2f 73 72 63 | = /usr2|/mlm/src|
|00005170| 2f 6d 69 73 63 2f 66 62 | 6d 2f 66 62 73 61 6d 70 |/misc/fb|m/fbsamp|
|00005180| 6c 65 2e 63 0a 58 20 2a | 0a 58 20 2a 20 48 49 53 |le.c.X *|.X * HIS|
|00005190| 54 4f 52 59 0a 58 20 2a | 20 32 30 2d 4d 61 79 2d |TORY.X *| 20-May-|
|000051a0| 38 39 20 20 4d 69 63 68 | 61 65 6c 20 4d 61 75 6c |89 Mich|ael Maul|
|000051b0| 64 69 6e 20 28 6d 6c 6d | 29 20 61 74 20 43 61 72 |din (mlm|) at Car|
|000051c0| 6e 65 67 69 65 20 4d 65 | 6c 6c 6f 6e 20 55 6e 69 |negie Me|llon Uni|
|000051d0| 76 65 72 73 69 74 79 0a | 58 20 2a 09 42 75 67 20 |versity.|X *.Bug |
|000051e0| 66 69 78 20 66 72 6f 6d | 20 44 61 76 65 20 43 6f |fix from| Dave Co|
|000051f0| 68 72 73 20 3c 64 61 76 | 65 40 63 73 2e 77 69 73 |hrs <dav|e@cs.wis|
|00005200| 63 2e 65 64 75 3e 0a 58 | 20 2a 0a 58 20 2a 20 30 |c.edu>.X| *.X * 0|
|00005210| 37 2d 4d 61 72 2d 38 39 | 20 20 4d 69 63 68 61 65 |7-Mar-89| Michae|
|00005220| 6c 20 4d 61 75 6c 64 69 | 6e 20 28 6d 6c 6d 29 20 |l Mauldi|n (mlm) |
|00005230| 61 74 20 43 61 72 6e 65 | 67 69 65 20 4d 65 6c 6c |at Carne|gie Mell|
|00005240| 6f 6e 20 55 6e 69 76 65 | 72 73 69 74 79 0a 58 20 |on Unive|rsity.X |
|00005250| 2a 09 42 65 74 61 20 72 | 65 6c 65 61 73 65 20 28 |*.Beta r|elease (|
|00005260| 76 65 72 73 69 6f 6e 20 | 30 2e 39 29 20 6d 6c 6d |version |0.9) mlm|
|00005270| 40 63 73 2e 63 6d 75 2e | 65 64 75 0a 58 20 2a 0a |@cs.cmu.|edu.X *.|
|00005280| 58 20 2a 20 20 35 2d 53 | 65 70 2d 38 38 20 20 4d |X * 5-S|ep-88 M|
|00005290| 69 63 68 61 65 6c 20 4d | 61 75 6c 64 69 6e 20 28 |ichael M|auldin (|
|000052a0| 6d 6c 6d 29 20 61 74 20 | 43 61 72 6e 65 67 69 65 |mlm) at |Carnegie|
|000052b0| 2d 4d 65 6c 6c 6f 6e 20 | 55 6e 69 76 65 72 73 69 |-Mellon |Universi|
|000052c0| 74 79 0a 58 20 2a 09 43 | 72 65 61 74 65 64 2e 0a |ty.X *.C|reated..|
|000052d0| 58 20 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |X ******|********|
|000052e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000052f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005300| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00005310| 2a 2a 2a 2f 0a 58 0a 58 | 23 69 6e 63 6c 75 64 65 |***/.X.X|#include|
|00005320| 20 3c 73 74 64 69 6f 2e | 68 3e 0a 58 23 69 6e 63 | <stdio.|h>.X#inc|
|00005330| 6c 75 64 65 20 3c 63 74 | 79 70 65 2e 68 3e 0a 58 |lude <ct|ype.h>.X|
|00005340| 23 69 6e 63 6c 75 64 65 | 20 22 66 62 6d 2e 68 22 |#include| "fbm.h"|
|00005350| 0a 58 0a 58 69 6e 74 20 | 77 69 64 74 68 2c 20 68 |.X.Xint |width, h|
|00005360| 65 69 67 68 74 3b 0a 58 | 0a 58 23 20 64 65 66 69 |eight;.X|.X# defi|
|00005370| 6e 65 20 55 53 41 47 45 | 20 5c 0a 58 20 20 22 66 |ne USAGE| \.X "f|
|00005380| 62 73 61 6d 70 6c 65 20 | 5b 20 2d 74 27 74 69 74 |bsample |[ -t'tit|
|00005390| 6c 65 27 20 2d 63 27 63 | 72 65 64 69 74 73 27 20 |le' -c'c|redits' |
|000053a0| 2d 67 27 67 72 61 69 6e | 27 20 2d 6e 27 6e 62 72 |-g'grain|' -n'nbr|
|000053b0| 27 20 5d 5c 6e 5c 0a 58 | 09 20 5b 20 2d 3c 74 79 |' ]\n\.X|. [ -<ty|
|000053c0| 70 65 3e 20 5d 20 3c 20 | 62 69 74 6d 61 70 20 3e |pe> ] < |bitmap >|
|000053d0| 20 69 6d 61 67 65 22 0a | 58 0a 58 23 69 66 6e 64 | image".|X.X#ifnd|
|000053e0| 65 66 20 6c 69 6e 74 0a | 58 73 74 61 74 69 63 20 |ef lint.|Xstatic |
|000053f0| 63 68 61 72 20 2a 66 62 | 6d 69 64 20 3d 0a 58 09 |char *fb|mid =.X.|
|00005400| 22 24 46 42 4d 20 66 62 | 73 61 6d 70 6c 65 2e 63 |"$FBM fb|sample.c|
|00005410| 20 3c 30 2e 39 34 3e 20 | 32 30 2d 4d 61 79 2d 38 | <0.94> |20-May-8|
|00005420| 39 20 20 28 43 29 20 31 | 39 38 39 20 62 79 20 4d |9 (C) 1|989 by M|
|00005430| 69 63 68 61 65 6c 20 4d | 61 75 6c 64 69 6e 24 22 |ichael M|auldin$"|
|00005440| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 0a 58 6d 61 69 |;.X#endi|f.X.Xmai|
|00005450| 6e 28 61 72 67 63 2c 20 | 61 72 67 76 29 0a 58 20 |n(argc, |argv).X |
|00005460| 20 69 6e 74 20 20 20 20 | 20 20 20 20 20 20 20 20 | int | |
|00005470| 20 61 72 67 63 3b 0a 58 | 20 20 63 68 61 72 20 20 | argc;.X| char |
|00005480| 20 20 20 20 20 20 20 20 | 20 2a 61 72 67 76 5b 5d | | *argv[]|
|00005490| 3b 0a 58 7b 0a 58 20 20 | 63 68 61 72 20 20 20 20 |;.X{.X |char |
|000054a0| 20 20 20 20 20 20 20 2a | 74 69 74 6c 65 20 3d 20 | *|title = |
|000054b0| 4e 55 4c 4c 2c 20 2a 63 | 72 65 64 69 74 73 20 3d |NULL, *c|redits =|
|000054c0| 20 4e 55 4c 4c 3b 0a 58 | 20 20 72 65 67 69 73 74 | NULL;.X| regist|
|000054d0| 65 72 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |er unsig|ned char|
|000054e0| 20 2a 62 6d 70 3b 0a 58 | 20 20 72 65 67 69 73 74 | *bmp;.X| regist|
|000054f0| 65 72 20 69 6e 74 09 20 | 20 69 2c 20 6a 2c 20 72 |er int. | i, j, r|
|00005500| 2c 20 63 2c 20 69 72 6f | 77 2c 20 6f 72 6f 77 2c |, c, iro|w, orow,|
|00005510| 20 67 72 61 69 6e 3d 35 | 2c 20 6e 62 72 3d 35 2c | grain=5|, nbr=5,|
|00005520| 20 73 75 6d 3b 0a 58 20 | 20 69 6e 74 09 09 20 20 | sum;.X | int.. |
|00005530| 6f 75 74 74 79 70 65 20 | 3d 20 44 45 46 5f 31 42 |outtype |= DEF_1B|
|00005540| 49 54 3b 0a 58 20 20 46 | 42 4d 09 09 20 20 69 6e |IT;.X F|BM.. in|
|00005550| 70 75 74 2c 20 6f 75 74 | 70 75 74 3b 0a 58 0a 58 |put, out|put;.X.X|
|00005560| 20 20 2f 2a 20 43 6c 65 | 61 72 20 74 68 65 20 6d | /* Cle|ar the m|
|00005570| 65 6d 6f 72 79 20 70 6f | 69 6e 74 65 72 73 20 73 |emory po|inters s|
|00005580| 6f 20 61 6c 6c 6f 63 5f | 66 62 6d 20 77 6f 6e 27 |o alloc_|fbm won'|
|00005590| 74 20 62 65 20 63 6f 6e | 66 75 73 65 64 20 2a 2f |t be con|fused */|
|000055a0| 0a 58 20 20 69 6e 70 75 | 74 2e 63 6d 20 20 3d 20 |.X inpu|t.cm = |
|000055b0| 69 6e 70 75 74 2e 62 6d | 20 20 3d 20 28 75 6e 73 |input.bm| = (uns|
|000055c0| 69 67 6e 65 64 20 63 68 | 61 72 20 2a 29 20 4e 55 |igned ch|ar *) NU|
|000055d0| 4c 4c 3b 0a 58 20 20 6f | 75 74 70 75 74 2e 63 6d |LL;.X o|utput.cm|
|000055e0| 20 3d 20 6f 75 74 70 75 | 74 2e 62 6d 20 3d 20 28 | = outpu|t.bm = (|
|000055f0| 75 6e 73 69 67 6e 65 64 | 20 63 68 61 72 20 2a 29 |unsigned| char *)|
|00005600| 20 4e 55 4c 4c 3b 0a 58 | 0a 58 20 20 2f 2a 20 47 | NULL;.X|.X /* G|
|00005610| 65 74 20 74 68 65 20 6f | 70 74 69 6f 6e 73 20 2a |et the o|ptions *|
|00005620| 2f 0a 58 20 20 77 68 69 | 6c 65 20 28 2d 2d 61 72 |/.X whi|le (--ar|
|00005630| 67 63 20 3e 20 30 20 26 | 26 20 28 2a 2b 2b 61 72 |gc > 0 &|& (*++ar|
|00005640| 67 76 29 5b 30 5d 20 3d | 3d 20 27 2d 27 29 0a 58 |gv)[0] =|= '-').X|
|00005650| 20 20 7b 20 77 68 69 6c | 65 20 28 2a 2b 2b 28 2a | { whil|e (*++(*|
|00005660| 61 72 67 76 29 29 0a 58 | 20 20 20 20 7b 20 73 77 |argv)).X| { sw|
|00005670| 69 74 63 68 20 28 2a 2a | 61 72 67 76 29 0a 58 20 |itch (**|argv).X |
|00005680| 20 20 20 20 20 7b 20 63 | 61 73 65 20 27 67 27 3a | { c|ase 'g':|
|00005690| 09 67 72 61 69 6e 20 3d | 20 61 74 6f 69 20 28 2a |.grain =| atoi (*|
|000056a0| 61 72 67 76 2b 31 29 3b | 20 53 4b 49 50 41 52 47 |argv+1);| SKIPARG|
|000056b0| 3b 20 62 72 65 61 6b 3b | 0a 58 20 20 20 20 20 20 |; break;|.X |
|000056c0| 20 20 63 61 73 65 20 27 | 6e 27 3a 09 6e 62 72 20 | case '|n':.nbr |
|000056d0| 3d 20 61 74 6f 69 20 28 | 2a 61 72 67 76 2b 31 29 |= atoi (|*argv+1)|
|000056e0| 3b 20 53 4b 49 50 41 52 | 47 3b 20 62 72 65 61 6b |; SKIPAR|G; break|
|000056f0| 3b 0a 58 09 63 61 73 65 | 20 27 74 27 3a 09 74 69 |;.X.case| 't':.ti|
|00005700| 74 6c 65 20 3d 20 2a 61 | 72 67 76 2b 31 3b 20 53 |tle = *a|rgv+1; S|
|00005710| 4b 49 50 41 52 47 3b 20 | 62 72 65 61 6b 3b 0a 58 |KIPARG; |break;.X|
|00005720| 09 63 61 73 65 20 27 63 | 27 3a 09 63 72 65 64 69 |.case 'c|':.credi|
|00005730| 74 73 20 3d 20 2a 61 72 | 67 76 2b 31 3b 20 53 4b |ts = *ar|gv+1; SK|
|00005740| 49 50 41 52 47 3b 20 62 | 72 65 61 6b 3b 0a 58 09 |IPARG; b|reak;.X.|
|00005750| 63 61 73 65 20 27 41 27 | 3a 09 6f 75 74 74 79 70 |case 'A'|:.outtyp|
|00005760| 65 20 3d 20 46 4d 54 5f | 41 54 4b 3b 20 62 72 65 |e = FMT_|ATK; bre|
|00005770| 61 6b 3b 0a 58 09 63 61 | 73 65 20 27 42 27 3a 09 |ak;.X.ca|se 'B':.|
|00005780| 6f 75 74 74 79 70 65 20 | 3d 20 46 4d 54 5f 46 41 |outtype |= FMT_FA|
|00005790| 43 45 3b 20 62 72 65 61 | 6b 3b 0a 58 09 63 61 73 |CE; brea|k;.X.cas|
|000057a0| 65 20 27 46 27 3a 09 6f | 75 74 74 79 70 65 20 3d |e 'F':.o|uttype =|
|000057b0| 20 46 4d 54 5f 46 42 4d | 3b 20 62 72 65 61 6b 3b | FMT_FBM|; break;|
|000057c0| 0a 58 09 63 61 73 65 20 | 27 47 27 3a 09 6f 75 74 |.X.case |'G':.out|
|000057d0| 74 79 70 65 20 3d 20 46 | 4d 54 5f 47 49 46 3b 20 |type = F|MT_GIF; |
|000057e0| 62 72 65 61 6b 3b 0a 58 | 09 63 61 73 65 20 27 49 |break;.X|.case 'I|
|000057f0| 27 3a 09 6f 75 74 74 79 | 70 65 20 3d 20 46 4d 54 |':.outty|pe = FMT|
|00005800| 5f 49 46 46 3b 20 62 72 | 65 61 6b 3b 0a 58 09 63 |_IFF; br|eak;.X.c|
|00005810| 61 73 65 20 27 4c 27 3a | 09 6f 75 74 74 79 70 65 |ase 'L':|.outtype|
|00005820| 20 3d 20 46 4d 54 5f 4c | 45 41 46 3b 20 62 72 65 | = FMT_L|EAF; bre|
|00005830| 61 6b 3b 0a 58 09 63 61 | 73 65 20 27 4d 27 3a 09 |ak;.X.ca|se 'M':.|
|00005840| 6f 75 74 74 79 70 65 20 | 3d 20 46 4d 54 5f 4d 43 |outtype |= FMT_MC|
|00005850| 50 3b 20 62 72 65 61 6b | 3b 0a 58 09 63 61 73 65 |P; break|;.X.case|
|00005860| 20 27 50 27 3a 09 6f 75 | 74 74 79 70 65 20 3d 20 | 'P':.ou|ttype = |
|00005870| 46 4d 54 5f 50 42 4d 3b | 20 62 72 65 61 6b 3b 0a |FMT_PBM;| break;.|
|00005880| 58 09 63 61 73 65 20 27 | 53 27 3a 09 6f 75 74 74 |X.case '|S':.outt|
|00005890| 79 70 65 20 3d 20 46 4d | 54 5f 53 55 4e 3b 20 62 |ype = FM|T_SUN; b|
|000058a0| 72 65 61 6b 3b 0a 58 09 | 63 61 73 65 20 27 54 27 |reak;.X.|case 'T'|
|000058b0| 3a 09 6f 75 74 74 79 70 | 65 20 3d 20 46 4d 54 5f |:.outtyp|e = FMT_|
|000058c0| 54 49 46 46 3b 20 62 72 | 65 61 6b 3b 0a 58 09 63 |TIFF; br|eak;.X.c|
|000058d0| 61 73 65 20 27 58 27 3a | 09 6f 75 74 74 79 70 65 |ase 'X':|.outtype|
|000058e0| 20 3d 20 46 4d 54 5f 58 | 31 31 3b 20 62 72 65 61 | = FMT_X|11; brea|
|000058f0| 6b 3b 0a 58 09 63 61 73 | 65 20 27 5a 27 3a 09 6f |k;.X.cas|e 'Z':.o|
|00005900| 75 74 74 79 70 65 20 3d | 20 46 4d 54 5f 50 43 58 |uttype =| FMT_PCX|
|00005910| 3b 20 62 72 65 61 6b 3b | 0a 58 09 64 65 66 61 75 |; break;|.X.defau|
|00005920| 6c 74 3a 09 66 70 72 69 | 6e 74 66 20 28 73 74 64 |lt:.fpri|ntf (std|
|00005930| 65 72 72 2c 20 22 55 73 | 61 67 65 3a 20 25 73 5c |err, "Us|age: %s\|
|00005940| 6e 22 2c 20 55 53 41 47 | 45 29 3b 0a 58 09 09 09 |n", USAG|E);.X...|
|00005950| 65 78 69 74 20 28 31 29 | 3b 0a 58 20 20 20 20 20 |exit (1)|;.X |
|00005960| 20 7d 0a 58 20 20 20 20 | 7d 0a 58 20 20 7d 0a 58 | }.X |}.X }.X|
|00005970| 0a 58 20 20 69 66 20 28 | 67 72 61 69 6e 20 3c 20 |.X if (|grain < |
|00005980| 31 20 7c 7c 20 67 72 61 | 69 6e 20 3e 20 31 36 29 |1 || gra|in > 16)|
|00005990| 0a 58 20 20 7b 20 66 70 | 72 69 6e 74 66 20 28 73 |.X { fp|rintf (s|
|000059a0| 74 64 65 72 72 2c 0a 58 | 09 20 20 20 20 20 22 55 |tderr,.X|. "U|
|000059b0| 73 61 67 65 3a 20 25 73 | 5c 6e 25 73 5c 6e 22 2c |sage: %s|\n%s\n",|
|000059c0| 0a 58 09 20 20 20 20 20 | 22 20 20 20 20 20 20 20 |.X. |" |
|000059d0| 28 67 72 61 69 6e 20 6d | 75 73 74 20 62 65 20 62 |(grain m|ust be b|
|000059e0| 65 74 77 65 65 6e 20 31 | 20 61 6e 64 20 31 36 29 |etween 1| and 16)|
|000059f0| 5c 6e 22 29 3b 0a 58 20 | 20 20 20 65 78 69 74 20 |\n");.X | exit |
|00005a00| 28 30 29 3b 0a 58 20 20 | 7d 0a 58 0a 58 20 20 2f |(0);.X |}.X.X /|
|00005a10| 2a 20 52 65 61 64 20 70 | 62 6d 20 62 69 74 6d 61 |* Read p|bm bitma|
|00005a20| 70 20 2a 2f 0a 58 20 20 | 69 66 20 28 21 20 72 65 |p */.X |if (! re|
|00005a30| 61 64 5f 62 69 74 6d 61 | 70 20 28 26 69 6e 70 75 |ad_bitma|p (&inpu|
|00005a40| 74 2c 20 28 63 68 61 72 | 20 2a 29 20 4e 55 4c 4c |t, (char| *) NULL|
|00005a50| 29 29 0a 58 20 20 7b 20 | 66 70 72 69 6e 74 66 20 |)).X { |fprintf |
|00005a60| 28 73 74 64 65 72 72 2c | 20 22 25 73 3a 20 69 6e |(stderr,| "%s: in|
|00005a70| 70 75 74 20 67 61 72 62 | 6c 65 64 20 6f 72 20 6e |put garb|led or n|
|00005a80| 6f 74 20 69 6e 20 50 42 | 4d 20 66 6f 72 6d 61 74 |ot in PB|M format|
|00005a90| 5c 6e 22 2c 20 61 72 67 | 76 5b 30 5d 29 3b 0a 58 |\n", arg|v[0]);.X|
|00005aa0| 20 20 20 20 65 78 69 74 | 28 31 29 3b 0a 58 20 20 | exit|(1);.X |
|00005ab0| 7d 0a 58 0a 58 20 20 69 | 66 20 28 74 69 74 6c 65 |}.X.X i|f (title|
|00005ac0| 20 3d 3d 20 4e 55 4c 4c | 20 26 26 20 69 6e 70 75 | == NULL| && inpu|
|00005ad0| 74 2e 68 64 72 2e 74 69 | 74 6c 65 5b 30 5d 29 0a |t.hdr.ti|tle[0]).|
|00005ae0| 58 20 20 7b 20 74 69 74 | 6c 65 20 3d 20 69 6e 70 |X { tit|le = inp|
|00005af0| 75 74 2e 68 64 72 2e 74 | 69 74 6c 65 3b 20 7d 0a |ut.hdr.t|itle; }.|
|00005b00| 58 0a 58 20 20 69 66 20 | 28 67 72 61 69 6e 20 3e |X.X if |(grain >|
|00005b10| 20 31 29 0a 58 20 20 7b | 20 77 69 64 74 68 20 3d | 1).X {| width =|
|00005b20| 20 69 6e 70 75 74 2e 68 | 64 72 2e 63 6f 6c 73 20 | input.h|dr.cols |
|00005b30| 2f 20 67 72 61 69 6e 3b | 0a 58 20 20 20 20 68 65 |/ grain;|.X he|
|00005b40| 69 67 68 74 20 3d 20 69 | 6e 70 75 74 2e 68 64 72 |ight = i|nput.hdr|
|00005b50| 2e 72 6f 77 73 20 2f 20 | 67 72 61 69 6e 3b 0a 58 |.rows / |grain;.X|
|00005b60| 20 20 7d 0a 58 20 20 65 | 6c 73 65 0a 58 20 20 7b | }.X e|lse.X {|
|00005b70| 20 77 69 64 74 68 20 3d | 20 69 6e 70 75 74 2e 68 | width =| input.h|
|00005b80| 64 72 2e 63 6f 6c 73 20 | 2d 20 67 72 61 69 6e 20 |dr.cols |- grain |
|00005b90| 2b 20 31 3b 0a 58 20 20 | 20 20 68 65 69 67 68 74 |+ 1;.X | height|
|00005ba0| 20 3d 20 69 6e 70 75 74 | 2e 68 64 72 2e 72 6f 77 | = input|.hdr.row|
|00005bb0| 73 20 2d 20 67 72 61 69 | 6e 20 2b 20 31 3b 0a 58 |s - grai|n + 1;.X|
|00005bc0| 20 20 7d 0a 58 0a 58 20 | 20 6f 72 6f 77 20 3d 20 | }.X.X | orow = |
|00005bd0| 32 20 2a 20 28 28 77 69 | 64 74 68 20 2a 20 38 20 |2 * ((wi|dth * 8 |
|00005be0| 2b 20 31 35 29 20 2f 20 | 31 36 29 3b 0a 58 20 20 |+ 15) / |16);.X |
|00005bf0| 69 72 6f 77 20 3d 20 69 | 6e 70 75 74 2e 68 64 72 |irow = i|nput.hdr|
|00005c00| 2e 72 6f 77 6c 65 6e 3b | 0a 58 0a 58 20 20 66 70 |.rowlen;|.X.X fp|
|00005c10| 72 69 6e 74 66 20 28 73 | 74 64 65 72 72 2c 20 22 |rintf (s|tderr, "|
|00005c20| 53 61 6d 70 6c 65 20 28 | 31 62 69 74 20 74 6f 20 |Sample (|1bit to |
|00005c30| 38 62 69 74 29 20 5c 22 | 25 73 5c 22 3a 20 5b 25 |8bit) \"|%s\": [%|
|00005c40| 64 78 25 64 78 31 5d 20 | 3d 3d 3e 20 5b 25 64 78 |dx%dx1] |==> [%dx|
|00005c50| 25 64 78 38 5d 5c 6e 22 | 2c 0a 58 09 20 20 74 69 |%dx8]\n"|,.X. ti|
|00005c60| 74 6c 65 20 3f 20 74 69 | 74 6c 65 20 3a 20 22 28 |tle ? ti|tle : "(|
|00005c70| 75 6e 74 69 74 6c 65 64 | 29 22 2c 0a 58 09 20 20 |untitled|)",.X. |
|00005c80| 69 6e 70 75 74 2e 68 64 | 72 2e 63 6f 6c 73 2c 20 |input.hd|r.cols, |
|00005c90| 69 6e 70 75 74 2e 68 64 | 72 2e 72 6f 77 73 2c 20 |input.hd|r.rows, |
|00005ca0| 77 69 64 74 68 2c 20 68 | 65 69 67 68 74 29 3b 0a |width, h|eight);.|
|00005cb0| 58 0a 58 20 20 2f 2a 20 | 53 65 74 20 75 70 20 6f |X.X /* |Set up o|
|00005cc0| 75 74 70 75 74 20 68 65 | 61 64 65 72 20 2a 2f 0a |utput he|ader */.|
|00005cd0| 58 20 20 6f 75 74 70 75 | 74 2e 68 64 72 2e 63 6f |X outpu|t.hdr.co|
|00005ce0| 6c 73 20 3d 20 77 69 64 | 74 68 3b 0a 58 20 20 6f |ls = wid|th;.X o|
|00005cf0| 75 74 70 75 74 2e 68 64 | 72 2e 72 6f 77 73 20 3d |utput.hd|r.rows =|
|00005d00| 20 68 65 69 67 68 74 3b | 0a 58 20 20 6f 75 74 70 | height;|.X outp|
|00005d10| 75 74 2e 68 64 72 2e 70 | 6c 61 6e 65 73 20 3d 20 |ut.hdr.p|lanes = |
|00005d20| 31 3b 0a 58 20 20 6f 75 | 74 70 75 74 2e 68 64 72 |1;.X ou|tput.hdr|
|00005d30| 2e 62 69 74 73 20 3d 20 | 38 3b 0a 58 20 20 6f 75 |.bits = |8;.X ou|
|00005d40| 74 70 75 74 2e 68 64 72 | 2e 70 68 79 73 62 69 74 |tput.hdr|.physbit|
|00005d50| 73 20 3d 20 38 3b 0a 58 | 20 20 6f 75 74 70 75 74 |s = 8;.X| output|
|00005d60| 2e 68 64 72 2e 72 6f 77 | 6c 65 6e 20 3d 20 6f 72 |.hdr.row|len = or|
|00005d70| 6f 77 3b 0a 58 20 20 6f | 75 74 70 75 74 2e 68 64 |ow;.X o|utput.hd|
|00005d80| 72 2e 70 6c 6e 6c 65 6e | 20 3d 20 6f 72 6f 77 20 |r.plnlen| = orow |
|00005d90| 2a 20 68 65 69 67 68 74 | 3b 0a 58 20 20 6f 75 74 |* height|;.X out|
|00005da0| 70 75 74 2e 68 64 72 2e | 61 73 70 65 63 74 20 3d |put.hdr.|aspect =|
|00005db0| 20 31 2e 30 3b 0a 58 20 | 20 6f 75 74 70 75 74 2e | 1.0;.X | output.|
|00005dc0| 68 64 72 2e 63 6c 72 6c | 65 6e 20 3d 20 30 3b 0a |hdr.clrl|en = 0;.|
|00005dd0| 58 0a 58 20 20 69 66 20 | 28 74 69 74 6c 65 29 20 |X.X if |(title) |
|00005de0| 73 74 72 63 70 79 20 28 | 6f 75 74 70 75 74 2e 68 |strcpy (|output.h|
|00005df0| 64 72 2e 74 69 74 6c 65 | 2c 20 74 69 74 6c 65 29 |dr.title|, title)|
|00005e00| 3b 0a 58 20 20 69 66 20 | 28 63 72 65 64 69 74 73 |;.X if |(credits|
|00005e10| 29 20 73 74 72 63 70 79 | 20 28 6f 75 74 70 75 74 |) strcpy| (output|
|00005e20| 2e 68 64 72 2e 63 72 65 | 64 69 74 73 2c 20 63 72 |.hdr.cre|dits, cr|
|00005e30| 65 64 69 74 73 29 3b 0a | 58 20 20 0a 58 20 20 61 |edits);.|X .X a|
|00005e40| 6c 6c 6f 63 5f 66 62 6d | 20 28 26 6f 75 74 70 75 |lloc_fbm| (&outpu|
|00005e50| 74 29 3b 0a 58 0a 58 20 | 20 66 70 72 69 6e 74 66 |t);.X.X | fprintf|
|00005e60| 20 28 73 74 64 65 72 72 | 2c 20 22 77 69 64 74 68 | (stderr|, "width|
|00005e70| 20 25 64 2c 20 68 65 69 | 67 68 74 20 25 64 2c 20 | %d, hei|ght %d, |
|00005e80| 67 72 61 69 6e 20 25 64 | 2c 20 6e 62 72 20 25 64 |grain %d|, nbr %d|
|00005e90| 2c 20 69 72 6f 77 20 25 | 64 2c 20 6f 72 6f 77 20 |, irow %|d, orow |
|00005ea0| 25 64 5c 6e 22 2c 0a 58 | 09 20 20 20 77 69 64 74 |%d\n",.X|. widt|
|00005eb0| 68 2c 20 68 65 69 67 68 | 74 2c 20 67 72 61 69 6e |h, heigh|t, grain|
|00005ec0| 2c 20 6e 62 72 2c 20 69 | 72 6f 77 2c 20 6f 72 6f |, nbr, i|row, oro|
|00005ed0| 77 29 3b 0a 58 20 20 0a | 58 20 20 66 6f 72 20 28 |w);.X .|X for (|
|00005ee0| 72 3d 30 3b 20 72 3c 68 | 65 69 67 68 74 3b 20 72 |r=0; r<h|eight; r|
|00005ef0| 2b 2b 29 0a 58 20 20 7b | 20 66 6f 72 20 28 63 3d |++).X {| for (c=|
|00005f00| 30 3b 20 63 3c 77 69 64 | 74 68 3b 20 63 2b 2b 29 |0; c<wid|th; c++)|
|00005f10| 0a 58 20 20 20 20 7b 20 | 73 75 6d 20 3d 20 30 3b |.X { |sum = 0;|
|00005f20| 0a 58 20 20 20 20 20 20 | 62 6d 70 20 3d 20 26 28 |.X |bmp = &(|
|00005f30| 69 6e 70 75 74 2e 62 6d | 5b 28 72 2a 67 72 61 69 |input.bm|[(r*grai|
|00005f40| 6e 29 20 2a 20 69 72 6f | 77 20 2b 20 28 63 2a 67 |n) * iro|w + (c*g|
|00005f50| 72 61 69 6e 29 5d 29 3b | 0a 58 0a 58 20 20 20 20 |rain)]);|.X.X |
|00005f60| 20 20 66 6f 72 20 28 6a | 3d 30 3b 20 6a 3c 6e 62 | for (j|=0; j<nb|
|00005f70| 72 3b 20 6a 2b 2b 2c 20 | 62 6d 70 20 2b 3d 20 69 |r; j++, |bmp += i|
|00005f80| 72 6f 77 29 0a 58 20 20 | 20 20 20 20 7b 20 66 6f |row).X | { fo|
|00005f90| 72 20 28 69 3d 30 3b 20 | 69 3c 6e 62 72 3b 20 69 |r (i=0; |i<nbr; i|
|00005fa0| 2b 2b 29 0a 58 20 20 20 | 20 20 20 20 20 7b 20 69 |++).X | { i|
|00005fb0| 66 20 28 62 6d 70 5b 69 | 5d 29 20 73 75 6d 2b 2b |f (bmp[i|]) sum++|
|00005fc0| 3b 20 7d 0a 58 20 20 20 | 20 20 20 7d 0a 58 0a 58 |; }.X | }.X.X|
|00005fd0| 20 20 20 20 20 20 69 66 | 20 28 73 75 6d 20 3e 20 | if| (sum > |
|00005fe0| 32 35 35 29 20 73 75 6d | 20 3d 20 32 35 35 3b 0a |255) sum| = 255;.|
|00005ff0| 58 20 20 20 20 20 20 0a | 58 20 20 20 20 20 20 6f |X .|X o|
|00006000| 75 74 70 75 74 2e 62 6d | 5b 72 20 2a 20 6f 72 6f |utput.bm|[r * oro|
|00006010| 77 20 2b 20 63 5d 20 3d | 20 73 75 6d 3b 0a 58 20 |w + c] =| sum;.X |
|00006020| 20 20 20 7d 0a 58 20 20 | 7d 0a 58 0a 58 20 20 77 | }.X |}.X.X w|
|00006030| 72 69 74 65 5f 62 69 74 | 6d 61 70 20 28 26 6f 75 |rite_bit|map (&ou|
|00006040| 74 70 75 74 2c 20 73 74 | 64 6f 75 74 2c 20 6f 75 |tput, st|dout, ou|
|00006050| 74 74 79 70 65 29 3b 0a | 58 0a 58 20 20 65 78 69 |ttype);.|X.X exi|
|00006060| 74 20 28 30 29 3b 0a 58 | 7d 0a 45 4e 44 5f 4f 46 |t (0);.X|}.END_OF|
|00006070| 5f 46 49 4c 45 0a 69 66 | 20 74 65 73 74 20 34 32 |_FILE.if| test 42|
|00006080| 36 32 20 2d 6e 65 20 60 | 77 63 20 2d 63 20 3c 27 |62 -ne `|wc -c <'|
|00006090| 66 62 73 61 6d 70 6c 65 | 2e 63 27 60 3b 20 74 68 |fbsample|.c'`; th|
|000060a0| 65 6e 0a 20 20 20 20 65 | 63 68 6f 20 73 68 61 72 |en. e|cho shar|
|000060b0| 3a 20 5c 22 27 66 62 73 | 61 6d 70 6c 65 2e 63 27 |: \"'fbs|ample.c'|
|000060c0| 5c 22 20 75 6e 70 61 63 | 6b 65 64 20 77 69 74 68 |\" unpac|ked with|
|000060d0| 20 77 72 6f 6e 67 20 73 | 69 7a 65 21 0a 66 69 0a | wrong s|ize!.fi.|
|000060e0| 23 20 65 6e 64 20 6f 66 | 20 27 66 62 73 61 6d 70 |# end of| 'fbsamp|
|000060f0| 6c 65 2e 63 27 0a 66 69 | 0a 69 66 20 74 65 73 74 |le.c'.fi|.if test|
|00006100| 20 2d 66 20 27 66 6c 62 | 79 74 65 2e 63 27 20 2d | -f 'flb|yte.c' -|
|00006110| 61 20 22 24 7b 31 7d 22 | 20 21 3d 20 22 2d 63 22 |a "${1}"| != "-c"|
|00006120| 20 3b 20 74 68 65 6e 20 | 0a 20 20 65 63 68 6f 20 | ; then |. echo |
|00006130| 73 68 61 72 3a 20 57 69 | 6c 6c 20 6e 6f 74 20 63 |shar: Wi|ll not c|
|00006140| 6c 6f 62 62 65 72 20 65 | 78 69 73 74 69 6e 67 20 |lobber e|xisting |
|00006150| 66 69 6c 65 20 5c 22 27 | 66 6c 62 79 74 65 2e 63 |file \"'|flbyte.c|
|00006160| 27 5c 22 0a 65 6c 73 65 | 0a 65 63 68 6f 20 73 68 |'\".else|.echo sh|
|00006170| 61 72 3a 20 45 78 74 72 | 61 63 74 69 6e 67 20 5c |ar: Extr|acting \|
|00006180| 22 27 66 6c 62 79 74 65 | 2e 63 27 5c 22 20 5c 28 |"'flbyte|.c'\" \(|
|00006190| 34 31 32 36 20 63 68 61 | 72 61 63 74 65 72 73 5c |4126 cha|racters\|
|000061a0| 29 0a 73 65 64 20 22 73 | 2f 5e 58 2f 2f 22 20 3e |).sed "s|/^X//" >|
|000061b0| 27 66 6c 62 79 74 65 2e | 63 27 20 3c 3c 27 45 4e |'flbyte.|c' <<'EN|
|000061c0| 44 5f 4f 46 5f 46 49 4c | 45 27 0a 58 2f 2a 2a 2a |D_OF_FIL|E'.X/***|
|000061d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000061e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000061f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00006200| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 0a 58 |********|******.X|
|00006210| 20 2a 20 66 6c 62 79 74 | 65 2e 63 3a 20 46 42 4d | * flbyt|e.c: FBM|
|00006220| 20 4c 69 62 72 61 72 79 | 20 30 2e 39 34 20 28 42 | Library| 0.94 (B|
|00006230| 65 74 61 20 74 65 73 74 | 29 20 32 30 2d 4d 61 79 |eta test|) 20-May|
|00006240| 2d 38 39 20 20 4d 69 63 | 68 61 65 6c 20 4d 61 75 |-89 Mic|hael Mau|
|00006250| 6c 64 69 6e 0a 58 20 2a | 0a 58 20 2a 20 43 6f 70 |ldin.X *|.X * Cop|
|00006260| 79 72 69 67 68 74 20 28 | 43 29 20 31 39 38 39 20 |yright (|C) 1989 |
|00006270| 62 79 20 4d 69 63 68 61 | 65 6c 20 4d 61 75 6c 64 |by Micha|el Mauld|
|00006280| 69 6e 2e 20 20 50 65 72 | 6d 69 73 73 69 6f 6e 20 |in. Per|mission |
|00006290| 69 73 20 67 72 61 6e 74 | 65 64 20 74 6f 0a 58 20 |is grant|ed to.X |
|000062a0| 2a 20 75 73 65 20 74 68 | 69 73 20 66 69 6c 65 20 |* use th|is file |
|000062b0| 69 6e 20 77 68 6f 6c 65 | 20 6f 72 20 69 6e 20 70 |in whole| or in p|
|000062c0| 61 72 74 20 70 72 6f 76 | 69 64 65 64 20 74 68 61 |art prov|ided tha|
|000062d0| 74 20 79 6f 75 20 64 6f | 20 6e 6f 74 20 73 65 6c |t you do| not sel|
|000062e0| 6c 20 69 74 0a 58 20 2a | 20 66 6f 72 20 70 72 6f |l it.X *| for pro|
|000062f0| 66 69 74 20 61 6e 64 20 | 74 68 61 74 20 74 68 69 |fit and |that thi|
|00006300| 73 20 63 6f 70 79 72 69 | 67 68 74 20 6e 6f 74 69 |s copyri|ght noti|
|00006310| 63 65 20 69 73 20 72 65 | 74 61 69 6e 65 64 20 75 |ce is re|tained u|
|00006320| 6e 63 68 61 6e 67 65 64 | 2e 0a 58 20 2a 0a 58 20 |nchanged|..X *.X |
|00006330| 2a 20 66 6c 62 79 74 65 | 2e 63 3a 20 0a 58 20 2a |* flbyte|.c: .X *|
|00006340| 0a 58 20 2a 20 43 4f 4e | 54 45 4e 54 53 0a 58 20 |.X * CON|TENTS.X |
|00006350| 2a 09 67 65 74 5f 6c 6f | 6e 67 20 28 72 66 69 6c |*.get_lo|ng (rfil|
|00006360| 65 2c 20 6f 72 64 65 72 | 29 0a 58 20 2a 09 67 65 |e, order|).X *.ge|
|00006370| 74 5f 73 68 6f 72 74 20 | 28 72 66 69 6c 65 2c 20 |t_short |(rfile, |
|00006380| 6f 72 64 65 72 29 0a 58 | 20 2a 09 70 75 74 5f 6c |order).X| *.put_l|
|00006390| 6f 6e 67 20 28 6c 6f 6e | 67 2c 20 77 66 69 6c 65 |ong (lon|g, wfile|
|000063a0| 2c 20 6f 72 64 65 72 29 | 0a 58 20 2a 09 70 75 74 |, order)|.X *.put|
|000063b0| 5f 73 68 6f 72 74 20 28 | 77 6f 72 64 2c 20 77 66 |_short (|word, wf|
|000063c0| 69 6c 65 2c 20 6f 72 64 | 65 72 29 0a 58 20 2a 09 |ile, ord|er).X *.|
|000063d0| 6d 61 63 68 69 6e 65 5f | 62 79 74 65 5f 6f 72 64 |machine_|byte_ord|
|000063e0| 65 72 20 28 29 0a 58 20 | 2a 0a 58 20 2a 09 6f 72 |er ().X |*.X *.or|
|000063f0| 64 65 72 09 42 49 47 09 | 6d 73 62 20 66 69 72 73 |der.BIG.|msb firs|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.