[aprssig] Re: Symbol set revisions
Stephen H. Smith
wa8lmf2 at aol.com
Thu Apr 17 16:57:31 CDT 2008
Heikki Hannikainen wrote:
> - A single ZIP file containing both the specification file + the
> symbol images in a directory tree. The specification file has a fixed
> name, say, symbols.cfg (or whatever, as long as it's the same every
> The specification file could be a CSV file, listing the symbol table
> and character, a length-limited short name for the symbol, a longer
> description for those symbols with a non-obvious short name, flags
> telling whether this image is overlayable and rotatable, and the name
> of the symbol image file. Something like this:
> "/,"!","Police Stn","Police station",0,0,"symbols\pri\033.png"
> "/","""","No Symbol","No Symbol",0,0,"symbols\pri\034.png"
> ... more primary symbols ...
> "\","!",Emergency,A place of emergency,1,0,"symbols\alt\033.png"
> "\","""",No Symbol,No Symbol,1,0,"symbols\alt\034.png"
> Note how a " character is represented as two "'s in a "-delimited
> string. You could edit this in your favourite spreadsheet (excel,
> openoffice) if you like, and it'd be pretty easy to write your
> application to parse this.
> Then, the files referenced by the .cfg file in the same ZIP file. The
> file paths and names could change from ZIP revision to another, as
> long as the .cfg file points each symbol code to the correct symbol
Most applications don't use hundreds of individual images. APRSplus,
UIview, UIpoint and findu all use GRIDS of multiple symbol images in two
two graphics files. X,Y addressing is use to clip out the desired
symbol for display from the grid.
* APRSplus uses 2 linear arrays of ninety-six 16x16 pixel cells in
Windows BMP format that have no borders between them; ie the
right-most column of pixels for one symbol is immediately followed
by the left-most column of symbols for the next symbol.
* UIview uses 2 two-dimensional arrays of ninety-six cells in a 6 x
16 grid in Windows BMP format, with a one-pixel black border
separating the top, bottom and sides of each symbol from it's
* UIview's UIpoint plugin uses the same array but with a different
* Findu also uses two 6 x 16 grids of 16x16-pixel symbols but
rotated 90 degrees and stored in .PNG format, with NO borders
The UIview grid format (converted from .BMP to .GIF format for web
display) is shown on the APRS symbols page of my website at:
Storing individual images is horribly inefficient use of disk space
since each 16x16 pixel 256-color image that natively occupies less than
one-half K (16x16 pixels x 1 byte-per-pixel + some overhead for the
indexed pallette) winds up occupying the minimum allocation unit of the
hard disk , typically 4K to 32 K per character.
I would guess that it also yields a lot slower lookup since it would
require (relatively slow) disk access every time a symbol is required
(or require keeping HUNDREDS of individual images cached in RAM) rather
than dicing and slicing two graphics images read once from the hard
disk and cached in RAM.
Stephen H. Smith wa8lmf (at) aol.com
EchoLink Node: 14400 [Think bottom of the 2M band]
Home Page: http://wa8lmf.com --OR-- http://wa8lmf.net
NEW! World Digipeater Map
JavAPRS Filter Port 14580 Guide
"APRS 101" Explanation of APRS Path Selection & Digipeating
Updated "Rev H" APRS http://wa8lmf.net/aprs
Symbols Set for UI-View,
UIpoint and APRSplus:
More information about the aprssig