Order Tray | Contact Us | Home | SIG Lists

[aprssig] Re: Symbol set revisions

Stephen H. Smith wa8lmf2 at aol.com
Thu Apr 17 21:57:31 UTC 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 
> time).
>
>   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:
>
> "table","symchar","short_description","long_description","overlayable","rotatable","image" 
>
> "/,"!","Police Stn","Police station",0,0,"symbols\pri\033.png"
> "/","""","No Symbol","No Symbol",0,0,"symbols\pri\034.png"
> "/","#","Digi","Digipeater",0,0,"symbols\pri\035.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"
> "\","#",Digi,Digipeater,1,0,"symbols\alt\035.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 
> image:
>
> symbols\pri\033.png
> symbols\pri\034.png
> ...
> symbols\alt\033.png
> symbols\alt\034.png
>
>  

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
      neighbors.

    * UIview's UIpoint plugin uses the same array but with a different
      file name.

    * Findu also uses two 6 x 16 grids of 16x16-pixel symbols but
      rotated 90 degrees and stored in .PNG format, with NO borders
      between symbols.  



The UIview grid format (converted from .BMP to .GIF format for web 
display) is shown on the APRS symbols page of my website at:

    <http://wa8lmf.net/aprs/APRS_symbols.htm>

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
  http://wa8lmf.net/APRSmaps

JavAPRS Filter Port 14580 Guide
  http://wa8lmf.net/aprs/JAVaprsFilters.htm

"APRS 101"  Explanation of APRS Path Selection & Digipeating
  http://wa8lmf.net/DigiPaths

Updated "Rev H" APRS            http://wa8lmf.net/aprs
Symbols Set for UI-View,
UIpoint and APRSplus:








More information about the aprssig mailing list