🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: vmsnet.sources
Article #119

xv-2-21a changes to run on VMS, part 04/08

#119
From: Rick Dyson
Date: Wed, 04 Nov 1992 21:12
1114 lines
50201 bytes
Submitted-by: dyson@iowasp.physics.uiowa.edu (Rick Dyson)
Posting-number: Volume 3, Issue 236
Archive-name: xv-2-21_vms_changes/part04
Supersedes: xv-2-21_vms_changes: Volume 2, Issue 83-86

-+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
Vo`20such`20a`20thing`20`20is`20`20that
X`20`20`20`20`20`20`20`20using`20`20read/write`20color`20cells`20allows`20the
V`20Apply`20function`20in`20the
X`20`20`20`20`20`20`20`20xv`20color`20editor`20window`20to`20operate`20much`20f
Vaster.
X
X`20`20`20`20`20`20`20`20-perfect`20`20(Resource`20name:`20perfect`20`20boolean
V)
X`20`20`20`20`20`20`20`20Makes`20XV`20`20try`20'extra`20hard'`20to`20get`20all
V`20the`20colors`20it`20wants.`20`20In
X`20`20`20`20`20`20`20`20particular,`20when`20-perfect`20`20is`20`20specified,
V`20XV`20will`20allocate`20and
X`20`20`20`20`20`20`20`20install`20its`20own`20colormap`20`20if`20`20(and`20
V`20only`20`20if)`20it`20was`20unable`20to
X`20`20`20`20`20`20`20`20allocate`20all`20the`20desired`20colors.`20`20`20`20Th
Vis`20option`20is`20not`20allowed
X`20`20`20`20`20`20`20`20in`20conjunction`20with`20the`20-root`20option.
X
X`20`20`20`20`20`20`20`20-owncmap`20`20(Resource`20name:`20ownCmap`20`20boolean
V)
X`20`20`20`20`20`20`20`20Like`20'-perfect',`20only`20this`20option`20forces`20X
VV`20to`20always`20allocate
X`20`20`20`20`20`20`20`20and`20`20install`20`20its`20`20own`20colormap,`20there
Vby`20leaving`20`20the`20`20default
X`20`20`20`20`20`20`20`20colormap`20untouched.
X
X`20`20`20`20`20`20`20`20-cecmap`20(Resource`20name:`20ceditColorMap`20boolean)
V
X`20`20`20`20`20`20`20`20Specifies`20whether`20xv`20installs`20the`20`20image's
V`20`20colormap`20in`20the`20xv
X`20`20`20`20`20`20`20`20color`20editor`20window,`20as`20well`20as`20`20in`20
V`20the`20`20image's`20`20window.`20`20By
X`20`20`20`20`20`20`20`20default,`20the`20program`20does`20install`20the`20colo
Vrmap`20`20in`20`20the`20`20color
X`20`20`20`20`20`20`20`20editor`20`20window,`20`20however`20this`20can`20occasi
Vonally`20make`20the`20`20color
X`20`20`20`20`20`20`20`20editor`20`20window`20unreadable.`20`20(This`20option
V`20only`20apples`20when`20`20the
X`20`20`20`20`20`20`20`20'-perfect'`20or`20'-owncmap'`20options`20create`20thei
Vr`20own`20colormaps.)
X
X`20`20`20`20`20`20`20`20-ninstall`20`20(Resource`20name:`20ninstall`20`20boole
Van)
X`20`20`20`20`20`20`20`20Prevents`20`20XV`20`20from`20`20'installing'`20`20its
V`20`20own`20colormap,`20when`20`20the
X`20`20`20`20`20`20`20`20-perfect`20`20or`20`20-owncmap`20`20options`20`20are
V`20`20in`20`20effect.`20`20Instead`20`20of
X`20`20`20`20`20`20`20`20installing`20`20the`20`20colormap,`20`20it`20`20will
V`20`20merely`20`20'ask`20`20the`20window
X`20`20`20`20`20`20`20`20manager,`20nicely'`20`20to`20take`20care`20of`20it.
V`20`20This`20is`20the`20correct`20way
X`20`20`20`20`20`20`20`20to`20`20install`20`20a`20`20`20`20colormap`20`20(i.e.,
V`20`20ask`20`20the`20`20WM`20`20to`20`20do`20`20it),
X`20`20`20`20`20`20`20`20unfortunately,`20it`20doesn't`20actually`20seem`20to
V`20work`20in`20many`20window
X`20`20`20`20`20`20`20`20managers,`20`20so`20`20the`20`20default`20`20behavior
V`20`20is`20`20for`20`20XV`20`20to`20`20handle
X`20`20`20`20`20`20`20`20installation`20itself.`20`20However,`20this`20has`20be
Ven`20seen`20to`20annoy`20one
X`20`20`20`20`20`20`20`20window`20manager`20(dxwm),`20so`20this`20option`20is
V`20`20provided`20`20if`20your`20WM
X`20`20`20`20`20`20`20`20doesn't`20like`20programs`20installing`20their`20own
V`20colormaps.
X
X3`2024-bit_Conversion_Options
X`20`20`20`20`20`20`20`20The`20following`20options`20only`20come`20`20into`20pl
Vay`20if`20you`20are`20using`20XV
X`20`20`20`20to`20display`2024-bit`20RGB`20data`20(PPM`20files,`20color`20PM
V`20files,`20JPEG`20files,
X`20`20`20`20and`20the`20output`20of`20bggen).`20`20They`20`20have`20`20no`20ef
Vfect`20whatsoever`20on`20how
X`20`20`20`20GIF`20pictures`20or`208-bit`20greyscale`20images`20are`20displayed
V.
X
X`20`20`20`20`20`20`20`20-quick24`20(Resource`20name:`20quick24`20boolean)
X`20`20`20`20`20`20`20`20Forces`20`20xv`20`20to`20`20use`20`20the`20`20'quick'
V`20`2024-bit`20`20to`208-bit`20conversion
X`20`20`20`20`20`20`20`20algorithm.`20`20`20This`20`20algorithm`20dithers`20the
V`20picture`20using`20a`20fixed
X`20`20`20`20`20`20`20`20set`20of`20colors`20`20that`20`20span`20`20the`20`20en
Vtire`20`20RGB`20`20colorspace.`20`20`20`20In
X`20`20`20`20`20`20`20`20versions`20of`20xv`20prior`20`20to`202.10,`20this`20wa
Vs`20the`20default`20algorithm.
X`20`20`20`20`20`20`20`20It`20no`20longer`20is.
X
X`20`20`20`20`20`20`20`20-slow24`20`20(Resource`20name:`20slow24`20`20boolean)
X`20`20`20`20`20`20`20`20Specifies`20that`20the`20'slow'`2024-bit`20to`208-bit
V`20conversion`20algorithm
X`20`20`20`20`20`20`20`20is`20to`20be`20used`20`20by`20`20the`20program.`20`20T
Vhis`20algorithm`20uses`20a`20version
X`20`20`20`20`20`20`20`20of`20Heckbert's`20median`20cut`20algorithm`20`20to`20
V`20pick`20the`20'best'`20colors
X`20`20`20`20`20`20`20`20on`20a`20per-image`20basis,`20and`20dithers`20`20with
V`20`20those.`20`20`20`20This`20is`20the
X`20`20`20`20`20`20`20`20current`20default`20conversion`20algorithm.
X
X`20`20`20`20`20`20`20`20Advantages:`20`20`20`20The`20`20-slow24`20`20algorithm
V`20`20often`20produces`20`20better
X`20`20`20`20`20`20`20`20looking`20pictures`20than`20the`20-quick24`20algorithm
V.
X
X`20`20`20`20`20`20`20`20Disadvantages:`20`20The`20-slow24`20algorithm`20is`20a
Vbout`20half`20`20the`20speed
X`20`20`20`20`20`20`20`20of`20the`20-quick24`20algorithm.`20`20Also,`20since
V`20the`20colors`20`20are`20chosen
X`20`20`20`20`20`20`20`20on`20`20a`20`20per-image`20`20basis,`20it`20can't`20be
V`20used`20to`20display`20`20multiple
X`20`20`20`20`20`20`20`20images`20simultaneously,`20as`20`20each`20`20image`20
V`20will`20`20almost`20certainly
X`20`20`20`20`20`20`20`20want`20a`20different`20set`20`20of`20`20256`20colors.
V`20`20The`20-quick24`20algorithm,
X`20`20`20`20`20`20`20`20however,`20uses`20the`20same`20exact`20`20colors`20for
V`20all`20images,`20so`20it`20can
X`20`20`20`20`20`20`20`20display`20`20many`20`20images`20simultaneously,`20with
Vout`20running`20`20out`20`20of
X`20`20`20`20`20`20`20`20colors.
X
X`20`20`20`20`20`20`20`20-best24`20`20(Resource`20name:`20best24`20boolean)
X`20`20`20`20`20`20`20`20Forces`20xv`20to`20use`20`20the`20`20same`20`20algorit
Vhm`20`20used`20`20in`20`20the`20`20program
X`20`20`20`20`20`20`20`20ppmquant,`20written`20by`20Jef`20Poskanzer.`20`20`20Th
Vis`20algorithm`20also`20uses
X`20`20`20`20`20`20`20`20a`20version`20of`20Heckbert's`20median`20cut`20`20algo
Vrithm,`20`20but`20is`20capable
X`20`20`20`20`20`20`20`20of`20picking`20'better'`20colors`20than`20the`20-slow2
V4`20`20algorithm,`20and`20it
X`20`20`20`20`20`20`20`20doesn't`20dither.
X
X`20`20`20`20`20`20`20`20Advantages:`20`20`20Generally`20`20produces`20`20sligh
Vtly`20better`20images`20than
X`20`20`20`20`20`20`20`20the`20-slow24`20algorithm.`20`20`20`20Also,`20`20the
V`20images`20are`20undithered,`20so
X`20`20`20`20`20`20`20`20they`20look`20better`20when`20expanded.
X
X`20`20`20`20`20`20`20`20Disadvantages:`20`20Much`20slower`20than`20the`20-slow
V24`20algorithm.`20`20Like,
X`20`20`20`20`20`20`20`205`20to`2010`20times`20slower.`20`20The`20images`20`20p
Vroduced`20`20aren't`20`20that`20much
X`20`20`20`20`20`20`20`20better`20than`20those`20produced`20by`20the`20-slow24
V`20algorithm.
X
X`20`20`20`20`20`20`20`20-noqcheck`20`20(Resource`20name:`20noqcheck`20`20boole
Van)
X`20`20`20`20`20`20`20`20Turns`20off`20a`20'quick`20check'`20`20that`20`20is
V`20`20normally`20made.`20`20Normally,
X`20`20`20`20`20`20`20`20before`20`20running`20`20either`20`20of`20`20the`2024-
Vbit`20`20to`20`208-bit`20`20conversion
X`20`20`20`20`20`20`20`20algorithms,`20XV`20`20determines`20whether`20the`20pic
Vture`20to`20be`20displayed
X`20`20`20`20`20`20`20`20has`20more`20than`20`20256`20`20unique`20`20colors`20
V`20in`20`20it.`20`20`20`20If`20`20the`20picture
X`20`20`20`20`20`20`20`20doesn't,`20it`20will`20treat`20`20the`20`20picture`20
V`20as`20`20an`208-bit`20colormapped
X`20`20`20`20`20`20`20`20image`20(i.e.,`20GIF),`20and`20won't`20`20run`20`20eit
Vher`20`20of`20`20the`20`20conversion
X`20`20`20`20`20`20`20`20algorithms.
X
X`20`20`20`20`20`20`20`20Advantages:`20`20`20`20The`20`20pictures`20`20will`20
V`20be`20displayed`20`20'perfectly',
X`20`20`20`20`20`20`20`20whereas`20`20if`20`20they`20`20went`20`20through`20
V`20either`20`20of`20`20the`20`20`20conversion
X`20`20`20`20`20`20`20`20algorithms,`20they'd`20be`20dithered.
X
X`20`20`20`20`20`20`20`20Disadvantages:`20`20Often`20uses`20a`20lot`20of`20colo
Vrs,`20which`20`20limits`20`20the
X`20`20`20`20`20`20`20`20ability`20`20to`20`20view`20`20multiple`20images`20at
V`20once.`20`20(See`20the`20`20-slow24
X`20`20`20`20`20`20`20`20option`20above`20for`20further`20info`20about`20color
V`20sharing.)
X
X3`20Root_Window_Options
X`20`20`20`20`20`20`20`20XV`20has`20the`20ability`20to`20display`20images`20on
V`20`20the`20root`20window`20of`20an
X`20`20`20`20X`20`20display,`20`20rather`20`20than`20`20opening`20`20its`20`20o
Vwn`20`20window`20(the`20`20default
X`20`20`20`20behavior).`20`20`20`20When`20using`20the`20root`20window,`20the
V`20program`20is`20`20somewhat
X`20`20`20`20limited,`20because`20`20the`20`20program`20`20cannot`20`20receive
V`20`20input`20events`20(key
X`20`20`20`20press`20and`20mouse`20`20clicks)`20`20from`20`20the`20root`20windo
Vw.`20`20As`20a`20result,`20you
X`20`20`20`20cannot`20track`20pixel`20values,`20`20or`20`20crop,`20`20nor`20
V`20can`20`20you`20`20use`20keyboard
X`20`20`20`20commands`20while`20the`20mouse`20is`20in`20the`20root`20window.
X
X`20`20`20`20`20`20`20`20-root`20`20(Resource`20name:`20`20<none>)
X`20`20`20`20`20`20`20`20Directs`20`20XV`20`20to`20`20display`20images`20in`20t
Vhe`20root`20window,`20instead`20of
X`20`20`20`20`20`20`20`20opening`20its`20`20own`20`20window.`20`20`20`20Exactly
V`20`20how`20`20the`20`20images`20will`20be
X`20`20`20`20`20`20`20`20displayed`20in`20the`20`20root`20`20window`20is`20dete
Vrmined`20by`20the`20setting`20of
X`20`20`20`20`20`20`20`20the`20-rmode`20option.
X
X`20`20`20`20`20`20`20`20-rmode`20`20mode`20`20(Resource`20name:`20rootMode`20
V`20integer)
X`20`20`20`20`20`20`20`20Determines`20how`20images`20are`20`20to`20be`20display
Ved`20on`20the`20root`20window,
X`20`20`20`20`20`20`20`20when`20-root`20has`20been`20specified.`20`20`20You`20c
Van`20find`20the`20current`20list
X`20`20`20`20`20`20`20`20of`20'modes'`20by`20using`20a`20mode`20`20value`20`20o
Vf`20'-1'.`20`20XV`20will`20complain,
X`20`20`20`20`20`20`20`20and`20show`20a`20list`20of`20valid`20modes.`20`20`20
V`20The`20`20current`20list`20at`20of`20the
X`20`20`20`20`20`20`20`20time`20of`20this`20writing`20is:
X
X`20`20`20`20`20`20`20`20`20`20`20`200:`20`20`20`20`20`20tiling
X`20`20`20`20`20`20`20`20`20`20`20`201:`20`20`20`20`20`20integer`20tiling
X`20`20`20`20`20`20`20`20`20`20`20`202:`20`20`20`20`20`20mirrored`20tiling
X`20`20`20`20`20`20`20`20`20`20`20`203:`20`20`20`20`20`20integer`20mirrored`20t
Viling
X`20`20`20`20`20`20`20`20`20`20`20`204:`20`20`20`20`20`20centered`20tiling
X`20`20`20`20`20`20`20`20`20`20`20`205:`20`20`20`20`20`20centered`20on`20a`20so
Vlid`20background
X`20`20`20`20`20`20`20`20`20`20`20`206:`20`20`20`20`20`20centered`20on`20a`20'w
Varp'`20background
X`20`20`20`20`20`20`20`20`20`20`20`207:`20`20`20`20`20`20centered`20on`20a`20'b
Vrick'`20background
X
X`20`20`20`20`20`20`20`20The`20`20default`20mode`20is`20'0'.`20`20See`20`60`60S
Vection`20`203.5:`20`20`20`20The`20`20Display
X`20`20`20`20`20`20`20`20Modes`20Menu''`20for`20a`20description`20of`20the`20di
Vfferent`20display`20modes.
X
X`20`20`20`20`20`20`20`20-noresetroot`20(Resource`20name:`20resetroot)
X`20`20`20`20`20`20`20`20Normally,`20when`20changing`20from`20root`20to`20windo
Vw`20display`20`20mode,`20the
X`20`20`20`20`20`20`20`20root`20`20is`20`20set`20`20to`20`20the`20standard`20X
V`20crosshatch`20pattern.`20`20`20`20Using
X`20`20`20`20`20`20`20`20-noresetroot`20or`20setting`20resetroot`20to`20false
V`20will`20force`20the`20root
X`20`20`20`20`20`20`20`20to`20remain.`20`20`20`20This`20`20is`20useful`20when
V`20comparing`20between`20different
X`20`20`20`20`20`20`20`20tiled`20images.
X`20`20`20`20`20`20`20`20
X`20`20`20`20`20`20`20`20-rfg`20`20color`20`20(Resource`20name:`20rootForegroun
Vd`20`20string)
X`20`20`20`20`20`20`20`20Sets`20the`20'foreground'`20color`20used`20in`20some
V`20of`20the`20`20root`20`20display
X`20`20`20`20`20`20`20`20modes.
X
X`20`20`20`20`20`20`20`20-rbg`20`20color`20`20(Resource`20name:`20rootBackgroun
Vd`20`20string)
X`20`20`20`20`20`20`20`20Sets`20`20the`20'background'`20color`20used`20in`20som
Ve`20of`20the`20root`20`20display
X`20`20`20`20`20`20`20`20modes.
X
X`20`20`20`20`20`20`20`20-max`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Makes`20`20XV`20`20automatically`20stretch`20the`20ima
Vge`20to`20the`20full`20size`20of
X`20`20`20`20`20`20`20`20the`20screen.`20`20This`20is`20mostly`20useful`20when
V`20you`20want`20XV`20to`20display
X`20`20`20`20`20`20`20`20a`20background.`20`20`20While`20`20you`20`20could`20
V`20just`20`20as`20`20well`20`20specify`20the
X`20`20`20`20`20`20`20`20dimensions`20of`20your`20display`20('-geom`201152x900'
V`20for`20example),`20the
X`20`20`20`20`20`20`20`20-max`20option`20is`20display-independent.`20`20If`20yo
Vu`20suddenly`20decide`20to
X`20`20`20`20`20`20`20`20start`20working`20on`20a`201280x1024`20display`20`20(f
Verinstance)`20`20the`20`20same
X`20`20`20`20`20`20`20`20command`20will`20still`20work.`20`20Note:`20`20`20If
V`20you`20specify`20-max`20when`20you
X`20`20`20`20`20`20`20`20aren't`20using`20-root,`20the`20behavior`20is`20slight
Vly`20different.`20`20`20`20The
X`20`20`20`20`20`20`20`20image`20will`20be`20made`20as`20large`20as`20possible
V`20while`20still`20preserving
X`20`20`20`20`20`20`20`20the`20normal`20aspect`20ratio.
X
X`20`20`20`20`20`20`20`20-maxpect`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Makes`20`20the`20`20image`20`20as`20`20large`20`20as
V`20possible`20while`20preserving`20the
X`20`20`20`20`20`20`20`20aspect`20ratio.
X
X`20`20`20`20`20`20`20`20-quit`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Makes`20`20XV`20display`20the`20(first)`20specified
V`20file`20and`20exit,`20without
X`20`20`20`20`20`20`20`20any`20user`20`20intervention.`20`20`20`20Since`20`20im
Vages`20displayed`20on`20the`20root
X`20`20`20`20`20`20`20`20window`20remain`20there`20`20until`20`20explicitly`20
V`20cleared,`20`20this`20is`20very
X`20`20`20`20`20`20`20`20useful`20for`20having`20XV`20`20display`20`20backgroun
Vd`20`20images`20`20on`20the`20root
X`20`20`20`20`20`20`20`20window`20in`20some`20sort`20of`20start-up`20script.
V`20`20Needless`20to`20say,`20this
X`20`20`20`20`20`20`20`20is`20only`20useful`20if`20you`20are`20using`20-root.
X
X`20`20`20`20`20`20`20`20-clear`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Clears`20the`20root`20window`20of`20any`20extraneous
V`20XV`20images.`20`20Note:`20`20it
X`20`20`20`20`20`20`20`20is`20`20not`20`20necessary`20`20to`20`20do`20an`20'xv
V`20`20-clear'`20`20before`20`20displaying
X`20`20`20`20`20`20`20`20another`20`20picture`20`20in`20`20the`20root`20window.
V`20`20XV`20`20will`20`20detect`20`20that
X`20`20`20`20`20`20`20`20there's`20`20an`20`20old`20`20image`20`20in`20the`20ro
Vot`20window`20and`20`20automatically
X`20`20`20`20`20`20`20`20clear`20it`20out`20(and`20free`20the`20associated`20co
Vlors).
X
X3`20Window_Options
X`20`20`20`20`20`20`20`20XV`20currently`20`20consists`20`20of`20three`20main
V`20windows,`20plus`20one`20window
X`20`20`20`20for`20the`20actual`20`20image.`20`20`20`20These`20`20three`20`20wi
Vndows`20`20(the`20`20xv`20controls
X`20`20`20`20window,`20the`20xv`20info`20window,`20and`20the`20xv`20color`20edi
Vtor`20window)`20may`20be
X`20`20`20`20automatically`20mapped`20and`20positioned`20when`20the`20program
V`20starts.
X
X`20`20`20`20`20`20`20`20-cmap`20`20(Resource`20name:`20ctrlMap`20`20boolean)
X`20`20`20`20`20`20`20`20Maps`20the`20xv`20controls`20window.
X
X`20`20`20`20`20`20`20`20-cgeom`20`20geom`20`20(Resource`20name:`20ctrlGeometry
V`20`20string)
X`20`20`20`20`20`20`20`20Sets`20`20the`20`20initial`20geometry`20of`20the`20xv
V`20controls`20window.`20`20`20Note:
X`20`20`20`20`20`20`20`20only`20the`20position`20information`20is`20used.`20
V`20The`20window`20is`20of`20fixed
X`20`20`20`20`20`20`20`20size.
X
X`20`20`20`20`20`20`20`20-imap`20`20(Resource`20name:`20infoMap`20`20boolean)
X`20`20`20`20`20`20`20`20Maps`20the`20xv`20info`20window.
X
X`20`20`20`20`20`20`20`20-igeom`20`20geom`20`20(Resource`20name:`20infoGeomet
V`20`20string)
X`20`20`20`20`20`20`20`20Sets`20`20the`20initial`20geometry`20of`20the`20xv`20i
Vnfo`20window.`20`20Note:`20`20only
X`20`20`20`20`20`20`20`20the`20position`20`20information`20`20is`20`20used.`20
V`20`20`20The`20window`20is`20of`20fixed
X`20`20`20`20`20`20`20`20size.
X
X`20`20`20`20`20`20`20`20-cemap`20`20(Resource`20name:`20ceditMap`20`20boolean)
V
X`20`20`20`20`20`20`20`20Maps`20the`20xv`20color`20editor`20window.
X
X`20`20`20`20`20`20`20`20-cegeom`20`20geom`20`20(Resource`20name:`20ceditGeomet
Vry`20`20string)
X`20`20`20`20`20`20`20`20Sets`20the`20initial`20`20geometry`20`20of`20`20the
V`20`20xv`20`20color`20`20editor`20window.
X`20`20`20`20`20`20`20`20Note:`20`20only`20the`20`20position`20`20information
V`20is`20used.`20`20The`20window`20is
X`20`20`20`20`20`20`20`20of`20fixed`20size.
X
X`20`20`20`20`20`20`20`20-nopos`20`20(Resource`20name:`20nopos`20`20boolean)
X`20`20`20`20`20`20`20`20Turns`20off`20the`20'default'`20positioning`20of`20the
V`20various`20XV`20windows.
X`20`20`20`20`20`20`20`20Every`20time`20you`20open`20a`20window,`20`20you`20
V`20will`20`20be`20asked`20to`20position
X`20`20`20`20`20`20`20`20it.`20`20(Assuming`20your`20window`20manager`20asks
V`20you`20such`20things.`20`20mwm,
X`20`20`20`20`20`20`20`20for`20instance`20doesn't`20seem`20to`20ask.)
X
X3`20Miscellaneous_Options
X`20`20`20`20`20`20`20`20-mono`20`20(Resource`20name:`20mono`20`20boolean)
X`20`20`20`20`20`20`20`20Forces`20the`20image`20to`20be`20displayed`20as`20a
V`20greyscale.`20`20This`20is`20most
X`20`20`20`20`20`20`20`20useful`20when`20you`20are`20using`20certain`20greyscal
Ve`20X`20displays.`20`20While
X`20`20`20`20`20`20`20`20XV`20`20attempts`20`20to`20`20determine`20`20if`20`20i
Vt's`20`20running`20`20on`20a`20greyscale
X`20`20`20`20`20`20`20`20display,`20`20many`20`20X`20`20displays`20`20lie,`20
V`20and`20claim`20to`20be`20able`20to`20`20do
X`20`20`20`20`20`20`20`20color.`20`20(This`20is`20often`20because`20they`20have
V`20color`20graphics`20boards
X`20`20`20`20`20`20`20`20hooked`20up`20to`20`20b/w`20`20monitors.`20`20`20The
V`20computer,`20of`20course,`20has`20no
X`20`20`20`20`20`20`20`20way`20of`20knowing`20what`20`20type`20`20of`20`20monit
Vor`20`20is`20attached.)`20On`20these
X`20`20`20`20`20`20`20`20displays,`20if`20you`20don't`20specify`20`20-mono,`20
V`20what`20you`20will`20see`20is`20a
X`20`20`20`20`20`20`20`20greyscale`20`20representation`20of`20one`20of`20the
V`20`20RGB`20`20outputs`20`20of`20`20the
X`20`20`20`20`20`20`20`20system.`20`20`20(For`20example,`20you'll`20see`20the
V`20`20'red'`20`20output`20`20on`20`20our
X`20`20`20`20`20`20`20`20greyscale`20Sun`203/60s.)`20The`20-mono`20option`20cor
Vrects`20this`20behavior.
X
X`20`20`20`20`20`20`20`20-white`20`20color`20`20(Resource`20name:`20white`20
V`20string)
X`20`20`20`20`20`20`20`20Specifies`20`20the`20`20'white'`20`20color`20`20used
V`20when`20the`20picture`20`20is`20`20b/w
X`20`20`20`20`20`20`20`20stippled.`20`20(When`20'-ncols`200'`20has`20been`20spe
Vcified.)
X
X`20`20`20`20`20`20`20`20-black`20`20color`20`20(Resource`20name:`20black`20
V`20string)
X`20`20`20`20`20`20`20`20Specifies`20`20the`20`20'black'`20`20color`20`20used
V`20`20when`20the`20picture`20is`20`20b/w
X`20`20`20`20`20`20`20`20stippled.`20`20(When`20'-ncols`200'`20has`20been`20spe
Vcified.)
X
X`20`20`20`20`20`20`20`20Try`20`20something`20`20like:`20`20`20`20'xv`20`20-nco
Vls`20`200`20`20-bl`20`20red`20`20-wh`20`20yellow
X`20`20`20`20`20`20`20`20<filename>'`20for`20`20some`20interesting,`20late-'60s
V-style`20psychodelia
X`20`20`20`20`20`20`20`20effects.
X
X`20`20`20`20`20`20`20`20-wait`20`20secs`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Turns`20on`20a`20`20'slide-show'`20`20feature.`20`20
V`20`20Normally,`20if`20you`20specify
X`20`20`20`20`20`20`20`20multiple`20input`20files,`20XV`20`20will`20display`20t
Vhe`20first`20one,`20and`20wait
X`20`20`20`20`20`20`20`20for`20you`20to`20give`20the`20`20Next`20`20command`20
V`20(or`20`20whatever).`20`20The`20-wait
X`20`20`20`20`20`20`20`20option`20makes`20XV`20wait`20the`20specified`20number
V`20of`20seconds,`20and`20then
X`20`20`20`20`20`20`20`20go`20on`20to`20the`20next`20picture,`20without`20any
V`20user`20intervention.`20`20The
X`20`20`20`20`20`20`20`20program`20`20still`20`20accepts`20commands,`20so`20it'
Vs`20possible`20to`20`20'abort'
X`20`20`20`20`20`20`20`20the`20current`20picture`20without`20waiting`20the`20fu
Vll`20specified`20time`20by
X`20`20`20`20`20`20`20`20using`20the`20Next`20command.
X
X`20`20`20`20`20`20`20`20-wloop`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Normally,`20`20when`20running`20a`20slide-show`20with
V`20the`20-wait`20option,`20XV
X`20`20`20`20`20`20`20`20will`20`20terminate`20`20after`20displaying`20the`20la
Vst`20image.`20`20If`20you`20also
X`20`20`20`20`20`20`20`20specify`20the`20`20-wloop`20`20option,`20the`20program
V`20will`20loop`20back`20to`20the
X`20`20`20`20`20`20`20`20first`20image`20and`20`20continue`20the`20slide-show
V`20until`20the`20user`20issues
X`20`20`20`20`20`20`20`20the`20Quit`20command.
X
X`20`20`20`20`20`20`20`20-rgb`20`20(Resource`20name:`20hsvMode`20boolean)
X`20`20`20`20`20`20`20`20Specifies`20that,`20by`20default,`20`20the`20colormap
V`20editing`20dials`20in`20the
X`20`20`20`20`20`20`20`20xv`20color`20editor`20window`20should`20`20be`20`20in
V`20`20RGB`20`20mode.`20`20This`20is`20the
X`20`20`20`20`20`20`20`20normal`20default`20behavior.
X
X`20`20`20`20`20`20`20`20-hsv`20`20(Resource`20name:`20hsvMode`20`20boolean)
X`20`20`20`20`20`20`20`20Specifies`20that,`20by`20default,`20the`20colormap`20
V`20editing`20dials`20in`20the
X`20`20`20`20`20`20`20`20xv`20color`20editor`20window`20should`20be`20in`20HSV
V`20mode.
X
X`20`20`20`20`20`20`20`20-dither`20`20(Resouce`20name:`20autoDither`20`20boolea
Vn)
X`20`20`20`20`20`20`20`20When`20`20specified,`20`20tells`20`20XV`20`20to`20auto
Vmatically`20issue`20`20a`20`20Dither
X`20`20`20`20`20`20`20`20command`20`20whenever`20`20an`20`20image`20`20is`20fir
Vst`20displayed.`20`20`20Useful`20`20on
X`20`20`20`20`20`20`20`20displays`20`20with`20`20limited`20`20color`20`20capabi
Vlities`20`20(4-bit`20and`206-bit
X`20`20`20`20`20`20`20`20displays.)
X
X`20`20`20`20`20`20`20`20-smooth`20`20(Resource`20name:`20`20autoSmooth`20`20bo
Volean)
X`20`20`20`20`20`20`20`20When`20specified,`20`20tells`20`20XV`20`20to`20`20auto
Vmatically`20`20issue`20`20a`20Smooth
X`20`20`20`20`20`20`20`20command`20whenever`20an`20`20image`20is`20first`20disp
Vlayed.`20`20This`20is`20useful
X`20`20`20`20`20`20`20`20when`20you`20are`20using`20`20one`20`20of`20`20the`20i
Vmage`20sizing`20options`20(such`20as
X`20`20`20`20`20`20`20`20'-expand'`20or`20'-max').
X
X`20`20`20`20`20`20`20`20-crop`20`20(Resource`20name:`20autoCrop`20boolean)
X`20`20`20`20`20`20`20`20When`20specified,`20tells`20`20xv`20`20to`20`20automat
Vically`20issue`20an`20AutoCrop
X`20`20`20`20`20`20`20`20command`20whenever`20an`20image`20is`20first`20display
Ved.
X`20`20`20`20
X`20`20`20`20`20`20`20`20-visual`20`20vistype`20`20(Resource`20name:`20visual
V`20`20string)
X`20`20`20`20`20`20`20`20Normally,`20XV`20uses`20the`20default`20`20visual`20mo
Vdel`20provided`20by`20your`20X
X`20`20`20`20`20`20`20`20server.`20`20`20`20You`20can`20override`20this`20`20by
V`20`20explicitly`20`20selecting`20`20a
X`20`20`20`20`20`20`20`20visual`20`20to`20`20use.`20`20`20`20Valid`20types`20ar
Ve`20`20StaticGray,`20`20StaticColor,
X`20`20`20`20`20`20`20`20TrueColor,`20`20GrayScale,`20`20PseudoColor,`20and`20D
VirectColor.`20`20Not`20all
X`20`20`20`20`20`20`20`20of`20these`20are`20necessarily`20provided`20on`20any
V`20given`20X`20display.`20`20Run
X`20`20`20`20`20`20`20`20xdpyinfo`20on`20your`20`20display`20`20to`20`20find
V`20`20out`20what`20visual`20types`20are
X`20`20`20`20`20`20`20`20supported.
X
X`20`20`20`20`20`20`20`20-cursor`20`20curs`20`20(Resource`20name:`20cursor`20
V`20integer)
X`20`20`20`20`20`20`20`20Specifies`20an`20alternate`20cursor`20`20to`20`20use
V`20`20in`20`20the`20`20image`20`20window
X`20`20`20`20`20`20`20`20(instead`20`20of`20the`20normal`20'cross'`20`20cursor)
V.`20`20`20`20curs`20`20values`20`20are
X`20`20`20`20`20`20`20`20obtained`20by`20finding`20the`20character`20number`20
V`20of`20a`20cursor`20you`20like
X`20`20`20`20`20`20`20`20in`20the`20'cursor'`20font.`20`20(Run`20'xfd`20`20-fn
V`20`20cursor'`20`20to`20display`20the
X`20`20`20`20`20`20`20`20cursor`20font.)`20For`20example,`20a`20curs`20value
V`20of`20'56'`20corresponds`20to
X`20`20`20`20`20`20`20`20the`20(singularly`20useless)`20'Gumby'`20cursor.
X
X`20`20`20`20`20`20`20`20-keeparound`20`20(Resource`20name:`20keepAround`20`20b
Voolean)
X`20`20`20`20`20`20`20`20By`20`20default`20`20if`20you`20Delete`20the`20last
V`20file`20in`20`20the`20`20XV`20`20controls
X`20`20`20`20`20`20`20`20list,`20`20the`20`20program`20will`20automatically`20e
Vxit,`20as`20a`20convenience.
X`20`20`20`20`20`20`20`20If`20you`20find`20this`20an`20inconvenience.
X
X`20`20`20`20`20`20`20`20-2xlimit`20`20(Resource`20name:`202xlimit`20`20boolean
V)
X`20`20`20`20`20`20`20`20By`20default,`20`20XV`20`20prevents`20`20the`20`20imag
Ve`20window`20from`20ever`20getting
X`20`20`20`20`20`20`20`20larger`20than`20the`20`20screen.`20`20`20`20Unfortunat
Vely,`20because`20of`20this,`20if
X`20`20`20`20`20`20`20`20you`20load`20an`20image`20`20that`20`20is`20larger`20t
Vhan`20your`20screen,`20the`20image
X`20`20`20`20`20`20`20`20will`20be`20shrunk`20until`20it`20`20fits`20on`20your
V`20screen.`20`20Some`20folks`20find
X`20`20`20`20`20`20`20`20this`20`20undesirable`20`20behavior.`20`20Specifying
V`20the`20`20-2xlimit`20`20option
X`20`20`20`20`20`20`20`20doubles`20the`20size`20limitations.`20`20The`20image
V`20`20window`20`20will`20be`20kept
X`20`20`20`20`20`20`20`20from`20`20getting`20`20larger`20`20than`202x`20the`20w
Vidth`20and`20`20height`20`20of`20`20your
X`20`20`20`20`20`20`20`20screen.
X
X`20`20`20`20`20`20`20`20Just`20`20`20`20in`20`20`20`20case`20`20you're`20`20wo
Vndering`20`20why`20`20there's`20`20any`20`20size
X`20`20`20`20`20`20`20`20limitations:`20`20it's`20fairly`20easy`20to`20accident
Vally`20ask`20for`20a`20`20huge
X`20`20`20`20`20`20`20`20image`20`20to`20`20be`20generated.`20`20Simply`20crop
V`20a`20section`20of`20the`20`20image,
X`20`20`20`20`20`20`20`20zoom`20`20so`20`20you`20`20can`20`20see`20the`20indivi
Vdual`20pixels,`20and`20uncrop.`20`20If
X`20`20`20`20`20`20`20`20there`20were`20`20no`20`20size`20`20limitations,`20
V`20the`20`20(expanded`20many`20times)
X`20`20`20`20`20`20`20`20image`20could`20be`20`20huge,`20`20and`20`20might`20cr
Vash`20your`20X`20server.`20`20At`20the
X`20`20`20`20`20`20`20`20very`20least,`20it`20would`20`20take`20`20a`20`20long
V`20period`20of`20time,`20and`20freeze
X`20`20`20`20`20`20`20`20your`20`20X`20`20server`20during`20part`20`20of`20`20i
Vt.`20`20`20`20Generally`20`20undesirable
X`20`20`20`20`20`20`20`20behavior.
X
X`20`20`20`20`20`20`20`20-nolimits`20(Resource`20name:`20nolimites`20boolean)
X`20`20`20`20`20`20`20`20For`20`20the`20`20truly`20`20daring,`20this`20turns
V`20off`20all`20limitations`20on`20the
X`20`20`20`20`20`20`20`20maximum`20size`20`20of`20`20an`20`20image`20`20window.
V`20`20`20(Well,`20there's`20still`20an
X`20`20`20`20`20`20`20`20X-imposed`20`20maximum`20`20size`20`20of`20`2064k`20
V`20by`20`2064k,`20`20but`20`20that`20`20really
X`20`20`20`20`20`20`20`20shouldn't`20be`20a`20problem.)`20`20Warning:`20`20`20a
Vs`20mentioned`20above,`20it`20is
X`20`20`20`20`20`20`20`20fairly`20easy`20to`20accidentally`20generate`20`20a
V`20huge`20image`20when`20you`20do
X`20`20`20`20`20`20`20`20an`20UnCrop`20command,`20and`20you`20may`20`20well`20
V`20crash`20xv,`20your`20X`20server,
X`20`20`20`20`20`20`20`20the`20host`20machine,`20or`20all`20three.`20`20Use`20A
Vt`20Your`20Own`20Risk!!!
X
X`20`20`20`20`20`20`20`20-rv`20`20(Resource`20name:`20reverse)
X`20`20`20`20`20`20`20`20Makes`20`20xv`20display`20a`20'negative'`20of`20the
V`20`20loaded`20`20image.`20`20`20`20White
X`20`20`20`20`20`20`20`20becomes`20`20black,`20`20and`20black`20becomes`20white
V.`20`20Color`20`20images`20`20will
X`20`20`20`20`20`20`20`20have`20`20`20`20'interesting'`20`20effects,`20`20as
V`20`20the`20`20RGB`20`20components`20`20are
X`20`20`20`20`20`20`20`20individually`20reversed.`20`20For`20example,`20red`20(
V255,0,0)`20will`20become
X`20`20`20`20`20`20`20`20cyan`20(0,255,255),`20yellow`20will`20become`20blue,
V`20and`20so`20on.
X
X`20`20`20`20`20`20`20`20-DEBUG`20`20level`20`20`20(Resource`20name:`20<none>)
X`20`20`20`20`20`20`20`20Turns`20on`20some`20debugging`20information.`20`20You
V`20shouldn't`20need`20this.
X`20`20`20`20`20`20`20`20If`20everything`20worked`20perfectly,`20I`20wouldn't
V`20need`20`20this`20`20either.
X`20`20`20`20`20`20`20`20Specifying`20'-'`20all`20by`20itself`20tells`20XV`20to
V`20`20take`20`20its`20input`20from
X`20`20`20`20`20`20`20`20stdin,`20rather`20then`20from`20a`20file.`20`20This
V`20lets`20`20you`20`20put`20XV`20on`20the
X`20`20`20`20`20`20`20`20end`20of`20a`20Un*x`20pipe.
X
X2`20Limitations
X`20`20`20`20`20`20`20`20XV`20will`20NOT`20work`20on`20displays`20that`20aren't
V`201-,`204-,`206-,`20`208-,`20`2016-
X`20`20`20`2024-,`20or`20`2032-bits`20`20deep.`20`20`20`20Luckily,`20that`20sho
Vuld`20still`20cover`20nearly
X`20`20`20`20every`20display`20out`20`20there.`20`20It`20may`20not`20work`20on
V`20certain`206-`20or`2024-bit
X`20`20`20`20displays.
X
X`20`20`20`20`20`20`20`20It`20also`20only`20displays`20`20the`20`20first`20imag
Ve`20in`20GIF`20files`20that`20have
X`20`20`20`20multiple`20images`20in`20them.
X
X`20`20`20`20`20`20`20`20As`20for`20PM`20pictures,`20this`20`20program`20`20onl
Vy`20displays`201-plane`20PM_I
X`20`20`20`20pictures,`20or`201-,`203-,`20or`204-plane`20PM_C`20pictures.
X
X2`20Authors
X`20`20`20`20`20`20`20`20John`20Bradley`20`20-`20`20bradley@cis.upenn.edu
X
X`20`20`20`20`20`20`20`20GIF`20reading`20code`20`20based`20`20on`20gif2ras.c,
V`20by`20Patrick`20J.`20`20Naughton
X`20`20`20`20(naughton@wind.sun.com)
X
X`20`20`20`20`20`20`20`20GIF`20writing`20code`20essentially`20`20unchanged`20
V`20from`20`20code`20written`20by
X`20`20`20`20Michael`20Maudlin`20(mlm@cs.cmu.edu).
X
X`20`20`20`20`20`20`20`20SUN`20Rasterfile`20i/o`20code`20written`20by`20Dave
V`20Heath`20(heath@cs.jhu.edu)
X
X`20`20`20`20`20`20`20`20JPEG`20interface`20code`20written`20by`20Markus`20Baur
V
X`20`20`20`20`20`20`20`20(s_baur@iravcl.ira.uka.de)
X
X`20`20`20`20`20`20`20`20JPEG`20i/o`20code`20provided`20by`20the`20Independent
V`20JPEG`20Group.
X
X`20`20`20`20`20`20`20`20VMS`20port`20by`20David`20Jones`20(jonesd@kcgl1.eng.oh
Vio-state.edu),
X`20`20`20`20`20`20`20`20and`20Rick`20Dyson`20(Dyson@IowaSP.Physics.UIowa.EDU).
V
X
X1`20BGGEN
X`20`20`20`20`20`20`20`20Generates`20colored`20backgrounds`20on`20X11`20display
Vs.`20`20`20`20BGGEN`20`20is`20`20a
X`20`20`20`20program`20`20that`20`20generates`20`20a`20width-pixel`20wide`20by
V`20`20size-pixels`20`20high
X`20`20`20`20vertical`20stripe.`20`20The`20top`20of`20the`20stripe`20`20is`20
V`20in`20`20color`20(r1,g1,b1),
X`20`20`20`20and`20the`20bottom`20of`20the`20stripe`20is`20in`20color`20(rn,gn,
Vbn).`20`20Intermediate
X`20`20`20`20colors`20are`20interpolated`20between`20these`20colors.`20`20If
V`20you`20specify`20more
X`20`20`20`20than`202`20colors,`20the`20stripe`20passes`20through`20all`20the
V`20specified`20colors,
X`20`20`20`20in`20the`20order`20specified.
X
X`20`20`20`20`20`20`20`20The`20'-b'`20`20option`20`20specifies`20`20the`20numbe
Vr`20of`20significant`20bits`20in
X`20`20`20`20the`20(output)`20color`20specifications.`20`20It`20must`20range
V`20between`201`20and`208,
X`20`20`20`20inclusive.`20`20Use`20values`20`20less`20`20than`20`208`20(the`20d
Vefault)`20to`20limit`20color
X`20`20`20`20use`20by`20increasing`20the`20color`20granularity.
X
X`20`20`20`20`20`20`20`20Values`20for`20'r',`20'g',`20and`20`20'b'`20`20should
V`20range`20between`200`20and`20255,
X`20`20`20`20inclusive.`20`200`20means`20'off',`20and`20255`20means`20'fully
V`20on'.
X
X`20`20`20`20`20`20`20`20BGGEN`20doesn't`20actually`20affect`20your`20backgroun
Vd`20directly.`20`20BGGEN
X`20`20`20`20merely`20`20generates`20`20a`20small`20PPM`20(Portable`20Pixmap
V`20`20Format)`20`20datafile
X`20`20`20`20that`20XV`20can`20read`20and`20display.
X
X`20`20`20`20`20`20`20`20To`20use`20BGGEN`20,`20you`20should`20pipe`20its`20
V`20output`20into`20an`20XV`20command,
X`20`20`20`20such`20as:`20`20"xv`20-root`20-quit`20-slow24"
X
X`20`20`20`20`20`20`20`20The`20default`20'size'`20is`201024`20pixels,`20which
V`20should`20be`20`20as`20tall`20as
X`20`20`20`20your`20`20display.`20`20`20If`20your`20display`20is`20taller`20tha
Vn`20that,`20`20you`20`20should
X`20`20`20`20specify`20`20its`20`20actual`20`20height,`20`20otherwise`20`20you
V`20`20will`20`20get`20a`20bizarre
X`20`20`20`20repeating`20effect,`20`20that`20`20you`20`20probably`20didn't`20wa
Vnt.`20`20Note:`20`20If`20you
X`20`20`20`20specify`20small`20values`20of`20'-s',`20you`20can`20get`20some`20n
Veat`20effects.
X
X`20`20`20`20`20`20`20`20The`20'-w'`20argument`20has`20been`20added`20to`20impr
Vove`20the`20performance`20of
X`20`20`20`20various`20stippling`20algorithms`20(as`20in`20XV).`20`20More`20inf
Vormation`20to`20work
X`20`20`20`20with,`20and`20such.`20`20Try`20`20using`20`20'-w`2016'`20on`20thes
Ve`20command`20lines`20to`20see
X`20`20`20`20what`20is`20meant.
X
X`20`20`20`20Execution`20format:
X`20`20`20`20`20`20`20`20BGGEN`20`5B-w`20width`5D`20`5B-s`20size`5D`20`5B-b`20b
Vits`5D
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20r1`20g1`20b1`20`5Br2`20g2`20b2`20...
V`20rn`20gn`20bn`5D
X
X2`20Examples
X
X`20`20`20`20Light`20Blue`20to`20Dark`20Blue:
X`20`20`20`20`20`20`20`20BGGEN`20100`20100`20255`20`2050`2050`20150`20`20`7C
V`20xv`20-ro`20-q`20-sl`20"-"
X`20`20`20`20RGB`20Rainbow:
X`20`20`20`20`20`20`20`20BGGEN`200`200`20255`20`200`20255`200`20`20255`200`200
V`20`7C`20xv`20-ro`20-q`20-sl`20"-"
X`20`20`20`20Green`20Cylinders:
X`20`20`20`20`20`20`20`20BGGEN`200`200`200`20`200`20255`200`20`200`200`200`20-s
V`20128`20`7C`20xv`20-ro`20-q`20-sl`20"-"
X`20`20`20`20Blue`20to`20Magenta:
X`20`20`20`20`20`20`20`20BGGEN`200`200`20255`20`20200`200`20100`20`7C`20xv`20-r
Vo`20-q`20-sl`20"-"
X`20`20`20`20Full`20Rainbow:
X`20`20`20`20`20`20`20`20BGGEN`200`200`20255`20`200`20255`20255`20`200`20255
V`200`20`20255`20255`200`20`20255`200`200`20
X`20`20`20`20`20`20`20`20`20`20`20`20`7C`20xv`20-ro`20-q`20-sl`20"-"
X`20`20`20`20Repeating`20Rainbow:
X`20`20`20`20`20`20`20`20BGGEN`200`200`20255`200`20255`20255`200`20255`200`2025
V5`20255`200`20255`200`200`20
X`20`20`20`20`20`20`20`20`20`20`20`20`20`20255`200`20255`200`200`20255`20-s`202
V56`20`7C`20xv`20-ro`20-q`20-sl`20"-"
X
X2`20Bugs
X`20`20`20`20`20`20`20`20It'd`20probably`20be`20nice`20if`20the`20`20program
V`20`20used`20`20some`20`20X`20`20calls`20to
X`20`20`20`20determine`20screen`20size.`20`20It'd`20also`20probably`20`20be`20n
Vice`20if`20the`20program
X`20`20`20`20could`20take`20colors`20by`20'name',`20and`20also`20by`20hexadecim
Val`20value.
X
X2`20Author
X`20`20`20`20`20`20`20`20John`20Bradley`20`20-`20`20bradley@cis.upenn.edu
$ call unpack XV.HLP;222 893987139 ""
$!
$ create 'f'
X-`20`20533
X#ifdef`20VMS
X</*`20For`20VMS`20we`20will`20default`20all`20files`20EXCEPT`20directories`20t
Vo`20avoid
X`20`20`20the`20high`20cost`20of`20the`20VAXC`20implementation`20of`20the`20sta
Vt`20function.
X`20`20`20`20`20`20`20`20`20`20`20`20Suggested`20by`20Kevin`20Oberman`20(OBERMA
VN@icdc.llnl.gov)`20*/
X
X`20`20`20`20`20`20if`20(strstr`20(fnames`5Bi`5D+1,`20".DIR")`20!=`20NULL)`20fn
Vames`5Bi`5D`5B0`5D`20=`20C_DIR;
X#else
X-`20`20555
X#endif`20/*`20VMS`20*/
X/
$ call unpack XVDIR.DIF;222 927290042 ""
$!
$ create 'f'
X-`201114,`201114
X</*`20Added`20by`20RLD`20to`20activate`20sizing`20buttons`20for`20VMS`201-MAY-
V1992
X`20`20`20Though`20it`20still`20has`20the`20'creeping'`20window`20problem`20*/
X#if`20defined(DXWM)`20`7C`7C`20defined(VMS)`20/*`20dxwm`20seems`20to`20*only*
V`20pay`20attention`20to`20the`20hints`20*/
X-`201126,`201126
X#ifndef`20MWM`20/*`20don't`20do`20this`20for`20DEC's`20Motif`20Window`20Manage
Vr`20*/
X`20`20`20`20xwc.x`20-=`205;`20`20`20xwc.y`20-=`2025;`20`20`20`20/*`20EVIL`20KL
VUDGE`20*/
X#endif`20/*`20MWM`20*/
X/
$ call unpack XVEVENT.DIF;222 2020418545 ""
$!
$ create 'f'
X-`20`20132
X`20`20unsigned`20char`20*final_out=NULL;`09/*`20final`20output`20pointer`20*/
X-`20`20408,`20`20408
X`20`20`20`20`20`20status`20=`20GIF_DECOMPRESS
X`09(`20gif_fget_counted,`20map,`20maxpixels,`20picptr,`20`26final_out`20);
X-`20`20435,`20`20435
X`20`20`20`20`20`20/*`20Zero`20rest`20of`20array`20*/
X`20`20`20`20`20`20if`20(`20final_out`20!=`20NULL`20)
X`09`09while`20(`20final_out`20<`20`26picptr`5BHeight*Width`5D`20)`20*final_out
V++`20=`200;
X`20`20`20`20`20return(`20GifError(msg)*0`20);
X/
$ call unpack XVGIF.DIF;222 1679885970 ""
$!
$ create 'f'
X-`20`20559,`20`20559
X#ifdef`20VMS
X`20`20if`20((cinfo.input_file`20=`20fopen(fname,`20"r",`20"ctx=stm"))`20==`20N
VULL)`20return`201;
X#else
X`20`20if`20((cinfo.input_file`20=`20fopen(fname,`20"r"))`20==`20NULL)`20return
V`201;
X#endif
X/
$ call unpack XVJPEG.DIF;222 1632064038 ""
$!
$ create 'f'
X-`20`20228
Xvoid`20DimRect(win,`20x,`20y,`20w,`20h,`20bg)
XWindow`20win;
Xint`20x,y,w,h;
Xu_long`20bg;
X`7B
X`20`20/*`20stipple`20a`20rectangular`20region`20by`20drawing`20'bg'`20where
V`20there's`201's`20
X`20`20`20`20`20in`20the`20stipple`20pattern`20*/
X
X`20`20XSetFillStyle(theDisp,`20theGC,`20FillStippled);
X`20`20XSetStipple(theDisp,`20theGC,`20grayStip);
X`20`20XSetForeground(theDisp,`20theGC,`20bg);
X`20`20XFillRectangle(theDisp,win,theGC,x,y,w,h);
X`20`20XSetFillStyle(theDisp,`20theGC,`20FillSolid);
X`7D
X</***********************************/
X-`20`20235,`20`20235
X-`20`20245,`20`20259
X-`20`20263,`20`20264
X/
$ call unpack XVMISC.DIF;222 108744206 ""
$!
$ create 'f'
X$!
X$!`20apply`20fixes`20to`20XV`20source`20files`20based`20upon`20contents`20of
V`20.DIF`20files
X$!
X$`20Write`20Sys$Output`20"`20"
X$`20Write`20Sys$Output`20"Working`20on`20the`20XV`20files`20now..."
X$`20Write`20Sys$Output`20"`20"
X$`20Call`20dclslp`20vdcomp.c
X$`20Call`20dclslp`20xv.c
X$`20Call`20dclslp`20xvdir.c
X$`20Call`20dclslp`20xvevent.c
X$`20Call`20dclslp`20xvgif.c
X$`20Call`20dclslp`20xvjpeg.c
X$!
X$`20Write`20Sys$Output`20"`20"
X$`20Write`20Sys$Output`20"Working`20on`20the`20TIFF`20files`20now..."
X$`20Write`20Sys$Output`20"`20"
X$!
X$`20Set`20Default`20`5B.tiff`5D
X$`20Call`20dclslp`20mkg3states.c
X$`20Call`20dclslp`20tiffcompat.h
X$`20Call`20dclslp`20tiffio.h
X$`20Call`20dclslp`20tif_machdep.c
X$`20Call`20dclslp`20tif_swab.c
X$`20Set`20Default`20`5B-`5D
X$!
X$`20Exit
X$!
X$`20DCLSLP:`20SUBROUTINE
X$!
X$!`20edit`20file`20based`20upon`20DIFF/SLP`20output.
X$!
X$!`20parameters:
X$!`20`20`20`20`20P1`09Name`20of`20original`20source`20file.
X$!`20`20`20`20`20P2`09Name`20of`20differences`20file`20(default`20'P1'.dif)
X$!`20`20`20`20`20P3`09Name`20of`20output`20file.
X$!
X$`20say`20=`20"write`20sys$output"
X$`20if`20p1`20.eqs.`20""`20then`20inquire`20p1`20"File`20to`20edit"
X$`20if`20p1`20.eqs.`20""`20then`20exit
X$`20ifile_name`20=`20f$search(p1)
X$`20if`20ifile_name`20.eqs.`20""
X$`20then
X$`20`20say`20"Input`20file`20not`20found"
X$`20`20exit
X$`20endif
X$`20ifile_type`20=`20f$parse(p1,,,"TYPE")`20+`20"-orig;"
X$`20ifile_orig`20=`20f$search(f$parse(ifile_type,ifile_name))
X$`20if`20ifile_orig`20.nes.`20""
X$`20then
X$`20`20`20say`20"Found`20existing`20original`20file..."
X$`20else
X$`20`20`20`20copy/log`20'ifile_name'`20'f$parse(ifile_type,ifile_name)'
X$`20`20`20`20ifile_orig`20=`20ifile_name
X$`20endif
X$`20obj_file`20=`20f$parse(".obj;",ifile_name)
X$`20if`20f$search(obj_file)`20.nes.`20""`20then`20delete/log`20'obj_file'*
X$!
X$`20on`20control_y`20then`20goto`20cleanup
X$`20open/read`20ifile`20'ifile_orig'/err=no_input_file
X$`20say`20"Processing`20file`20",`20ifile_orig
X$`20open/read`20dfile`20'f$search(f$parse(P2,".dif;",ifile_name))'/error=no_di
Vf_file
X$`20on`20error`20then`20goto`20cleanup
X$`20ofile_name`20=`20f$parse(p3,"",ifile_name)
X$`20create`20'ofile_name'
X$`20open/append`20ofile`20'ofile_name'
X$`20cur_line`20=`200
X$`20read`20dfile`20dif_line/end=dif_eof
X$!
X$`20get_range:
X$`20`20`20dif_line`20=`20f$edit(dif_line,"collapse")`20-`20"-"
X$`20`20`20dif_start_line`20=`20f$integer(f$element(0,",",dif_line))
X$`20`20`20dif_end_line`20=`20f$element(1,",",dif_line)
X$`20`20`20if`20dif_end_line`20.eqs.`20","`20.or.`20dif_end_line`20.eqs.`20""
X$`20`20`20`20then`20dif_end_line`20=`20dif_start_line`20-`201
X$`20`20`20`20else
X$`09dif_start_line`20=`20dif_start_line`20-`201
X$`09dif_end_line`20=`20f$integer(dif_end_line)
X$`20`20`20endif
X$!
X$`20find_position:
X$`20`20`20if`20cur_line`20.ge.`20dif_start_line`20then`20goto`20skip_changed
X$`20`20`20read`20ifile`20line/end=cleanup
X$`20`20`20write`20ofile`20line
X$`20`20`20cur_line`20=`20cur_line`20+`201
X$`20`20`20goto`20find_position
X$!
X$`20skip_changed:
X$`20`20`20if`20cur_line`20.ge.`20dif_end_line`20then`20goto`20insert_new
X$`20`20`20read`20ifile`20line`20/end=cleanup
X$`20`20`20cur_line`20=`20cur_line`20+`201
X$`20`20`20goto`20skip_changed
X$!
X$`20insert_new:
X$`20`20`20read`20dfile`20dif_line/end=dif_eof
X$`20`20`20col1`20=`20f$extract(0,1,dif_line)
X$`20`20`20if`20col1`20.eqs.`20"-"`20then`20goto`20get_range
X$`20`20`20if`20dif_line`20.eqs.`20"/"`20then`20goto`20dif_eof
X$`20`20`20if`20col1`20.eqs.`20"<"`20then`20dif_line`20=`20dif_line`20-`20col1
X$`20`20`20write`20ofile`20dif_line
X$`20`20`20goto`20insert_new
X$!
X$`20dif_eof:
X$`20`20`20`20read`20ifile`20line/end=cleanup
X$`20`20`20`20write`20ofile`20line
X$`20`20`20`20goto`20dif_eof
X$!
X$`20cleanup:
X$`20`20`20close`20ifile
X$`20`20`20close`20dfile
X$`20`20`20close`20ofile
X$`20`20`20exit
X$!
X$!`20`20error`20exits
X$!
X$`20no_input_file:
X$`20`20`20say`20"Error`20opening`20input`20file"
X$`20`20`20exit
X$!
X$`20no_dif_file:
X$`20EXIT
X$ENDSUBROUTINE
$ call unpack XV_FIXUP_VMS.COM;222 1561868399 ""
$!
$ create 'f'
X%`20-*-LaTeX-*-
X%`20Converted`20automatically`20from`20troff`20to`20LaTeX
X%`20by`20tr2latex`20($Revision:`202.2`20$$Date:`201992/04/27`2015:13:26`20$
V`20by`20C.`20Engel)
X%`20on`20Wed`20Apr`2029`2013:59:18`201992
X%`20tr2latex`20was`20written`20by`20Kamal`20Al-Yahya`20at`20Stanford`20Univers
Vity
X%`20(Kamal%Hanauma@SU-SCORE.ARPA)
X%`20and`20substantially`20enhanced`20by`20Christian`20Engel`20at`20RWTH`20Aach
Ven
X%`20(krischan@informatik.rwth-aachen.de).
X%
X%`20troff`20input`20file:`20xv.man
X
X\documentstyle`5Btroffman,twoside`5D`7Barticle`7D
X\begin`7Bdocument`7D
X%--------------------------------------------------
X%`20start`20of`20input`20file:`20xv.man
X%
X\phead`7Bxv`7D`7Bl`7D`7BFeb`2026,`201992`7D`7BRev:`202.21`7D`7B`7D
X
X\shead`7BNAME`7D
X%
X\bf`20xv`20\rm%
X--`20interactive`20image`20display`20for`20the`20X`20Window`20System
X
X\shead`7BSYNTAX`7D
X%
X\bf`20xv`20\rm%
X%
X\it`20`5Boptions`5D`20`5Bfilename`20`5Bfilename$\ldots$`5D`5D`20\rm%
X
X\shead`7BNOTE`7D
XThis`20man`20page`20is`20merely`20the`20text`20portion`20of`20the`20(PostScrip
Vt)`20%
X`7B\it`20xv`7D
Xdocs,`20
Xwithout
Xthe`20figures,`20and`20without`20the`20appendicies.`20`20As`20such,`20it`20is
V`20highly`20recommended
Xthat`20you`20get`20your`20hands`20on`20the`20*real*`20documentation.
X
X\shead`7BDESCRIPTION`7D
X
X`7B\it`20xv`7D`20is`20an`20X11`20program`20that`20displays`20images`20in`20the
V`20GIF,`20JPEG,`20TIFF,
XPBM,`20PGM,`20PPM,`20X11`20bitmap,`20Utah`20Raster`20Toolkit`20RLE,`20PDS/VICA
VR,`20Sun
XRasterfile,`20and`20PM`20formats`20on`201--,`202--,`204--,`206--,`208--,`2016-
V-,`2024--,`20and
X32--bit`20X`20displays.`20`20`7B\it`20xv`7D`20will`20also`20read`20`7B\it`20co
Vmpress`7D-ed`20versions
Xof`20these`20files.
X
X\shead`7BSECTION`201:`20`20OVERVIEW`7D
X
X%
X`7B\it`20xv`7D
Xversion`202.21`20lets`20you`20do`20a`20large`20number`20of`20things`20(many
V`20of
Xthem`20actually`20useful),`20including,`20but`20not`20limited`20to,`20the`20fo
Vllowing:
X\begin`7BTPlist`7D`7B$\bullet$`7D
X\item`5B`7B$\bullet$`7D`5D
Xdisplay`20an`20image`20in`20a`20window`20on`20the`20screen
X\item`5B`7B$\bullet$`7D`5D
Xdisplay`20an`20image`20on`20the`20root`20window,`20in`20a`20variety`20of`20sty
Vles
X\item`5B`7B$\bullet$`7D`5D
Xgrab`20any`20rectangular`20portion`20of`20the`20screen`20and`20turn`20it`20int
Vo`20an`20image
X\item`5B`7B$\bullet$`7D`5D
Xarbitrarily`20stretch`20or`20compress`20the`20image
X\item`5B`7B$\bullet$`7D`5D
Xrotate`20the`20image`20in`2090--degree`20steps
X\item`5B`7B$\bullet$`7D`5D
Xflip`20the`20image`20around`20the`20horizontal`20or`20vertical`20axes
X\item`5B`7B$\bullet$`7D`5D
Xcrop`20a`20rectangular`20portion`20of`20the`20image
X\item`5B`7B$\bullet$`7D`5D
Xmagnify`20any`20portion`20of`20the`20image`20by`20any`20amount,`20up`20to`20th
Ve`20size`20of`20the`20screen
X\item`5B`7B$\bullet$`7D`5D
Xdetermine`20pixel`20values`20and`20x,y`20coordinates`20in`20the`20image
X\item`5B`7B$\bullet$`7D`5D
Xadjust`20image`20brightness`20and`20contrast`20with`20a`20gamma`20correction
V`20function
X\item`5B`7B$\bullet$`7D`5D
Xapply`20different`20gamma`20functions`20to`20the`20Red,`20Green,`20and`20Blue
V`20color`20
Xcomponents,`20to`20correct`20for`20non-linear`20color`20response
X\item`5B`7B$\bullet$`7D`5D
Xadjust`20global`20image`20saturation
X\item`5B`7B$\bullet$`7D`5D
Xperform`20global`20hue`20remapping
X\item`5B`7B$\bullet$`7D`5D
Xperform`20histogram`20equalization
X\item`5B`7B$\bullet$`7D`5D
Xedit`20an`20image's`20colormap
X\item`5B`7B$\bullet$`7D`5D
Xreduce`20the`20number`20of`20colors`20in`20an`20image
X\item`5B`7B$\bullet$`7D`5D
Xdither`20in`20color`20and`20b\`26w
X\item`5B`7B$\bullet$`7D`5D
Xsmooth`20an`20image
X\item`5B`7B$\bullet$`7D`5D
Xcrop`20off`20solid`20borders`20automatically
X\item`5B`7B$\bullet$`7D`5D
Xconvert`20image`20formats
X\item`5B`7B$\bullet$`7D`5D
Xgenerate`20Encapsulated`20PostScript
X\end`7BTPlist`7D
X
X\noindent
XUnfortunately`20the`20%
X\it`20Automatic`20Checkbook`20Balancing`20Module`20\rm%
Xstill`20isn't`20
Xcompletely`20debugged,`20and`20is`20not`20included`20in`20this`20distribution.
V`20
X
X\shead`7BSECTION`202:`20STARTING`20XV`20`7D
X
XNote:`20unless`20explicitly`20stated`20otherwise,`20the`20term`20%
X\it`20click`20\rm%
Xmeans`20`60`60click
Xwith`20the`20%
X\it`20Left`20\rm%
Xmouse`20button.''
X
XStart`20the`20program`20up`20by`20typing`20'xv'.`20`20After`20a`20short`20dela
Vy,`20a`20window`20will
Xappear`20with`20the`20default`20image`20(the`20%
X`7B\it`20xv`7D
Xlogo,`20credits`20and`20revision`20date)
Xdisplayed`20in`20it.`20`20If`20you`20change`20the`20size`20of`20the`20window
V`20(using`20whatever`20method
Xyour`20window`20manager`20provides),`20the`20image`20will`20be`20automatically
V`20stretched`20to
Xfit`20the`20window.
X
X\shead`7BSection`202.1:`20`20Displaying`20Pixel`20Values`7D
X
XClicking`20(and`20optionally`20dragging)`20the`20%
X\it`20Left`20\rm%
Xmouse`20button`20inside`20this`20
Xwindow`20will`20display`20pixel`20information`20in`20the`20following`20format:
V
X\begin`7BIPlist`7D
X\IPitem`7B`7B`7D`7D
X196,`20137`20=`20191,121,209`20(287`2042`2081`20HSV)
X\end`7BIPlist`7D
X
X\noindent
XThe`20first`20pair`20of`20numbers`20(196,137)`20are`20the`20x`20and`20y`20posi
Vtions`20of`20the`20cursor,
Xin`20image`20coordinates.`20`20These`20numbers`20remain`20the`20same`20regardl
Vess`20of`20any`20image
Xresizing,`20or`20cropping.`20`20For`20example,`20if`20you`20click`20on`20the
V`20eye`20of`20the`20fish`20on
Xthe`20right`20side`20of`20the`20default`20image,`20you'll`20get`20(approximate
Vly)`20251,129
Xregardless`20of`20the`20size`20of`20the`20displayed`20image.`20`20This`20allow
Vs`20you`20to`20zoom`20in
Xfor`20precise`20measurements.
X
XThe`20first`20triplet`20of`20numbers`20(191,121,209)`20are`20the`20RGB`20value
Vs`20of`20the`20selected
Xpixel.`20`20The`20components`20will`20have`20integer`20values`20in`20the`20ran
Vge`200--255.`20`20The
Xvalues`20displayed`20are`20prior`20to`20any`20HSV/RGB`20modification,`20but
V`20after`20any
Xcolormap`20changes.`20`20See`20`60`60Section`205:`20The`20Color`20Editor''`20f
Vor`20details.
X
XThe`20second`20triplet`20of`20numbers`20(287`2042`2081)`20are`20the`20HSV`20va
Vlues`20of`20the`20selected
Xpixel.`20`20The`20first`20component`20will`20have`20integer`20values`20in`20th
+-+-+-+-+-+-+-+-  END  OF PART 4 +-+-+-+-+-+-+-+-
Technical Details
Message-ID: <8981990@MVB.SAIC.COM>
Path: arc1-ca.pugleaf.net!sparky!uunet!news.univie.ac.at!chx400!ira.uka.de!yale.edu!yale!gumby!wupost!usc!news.service.uci.edu!unogate!mvb.saic.com!vmsnet-sources

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!news.univie.ac.at!chx400!ira.uka.de!yale.edu!yale!gumby!wupost!usc!news.service.uci.edu!unogate!mvb.saic.com!vmsnet-sources
Newsgroups: vmsnet.sources
From: dyson@iowasp.physics.uiowa.edu (Rick Dyson)
Subject: xv-2-21a changes to run on VMS, part 04/08
Date: Wed, 04 Nov 1992 21:12:39 GMT
Message-ID: <8981990@MVB.SAIC.COM>
Lines: 1114
Organization: Department of Physics and Astronomy, University of Iowa
Approved: Mark.Berryman@Mvb.Saic.Com