The current bitmap working copy is converted to a GEOS compacted bitmap. This format is used by several GEOS functions (i.e. 'BitmapUp') and is described in 'The Official GEOS Programmers Reference Guide', chapter 4, section 'Bit-Mapped Graphics'.
The current bitmap working copy is converted to GEOS icon format. A GEOS icon has the same format as a C64 high resolution sprite (24x21, monochrome, 63 bytes). There are no additional attributes for this conversion.
Lynx can handle 1, 2, 3 and 4 bits per pixel indexed sprites. The maximum size of a sprite is roughly 508 pixels but in reality the Lynx screen is only 160 by 102 pixels which makes very large sprites useless.
The number per pixels is taken from the number of colors of the input bitmap.
There are a few attributes that you can give to the conversion software.
The first is what kind of encoding to use for the sprite. The attribute for this is called "mode" and the possible values are "literal", "packed" or "transparent". The default is "packed" if no mode is specified.
The "literal" is a totally literal mode with no packing. In this mode the number of pixels per scanline will be a multiple of 8 both right and left from the action point.
If the source bitmap edge ends with a color where the least significant bit is one then there will be an extra 8 zero bits on that scan line.
So if you are using totally literal sprites and intend to change them at runtime then please add a single pixel border far left and far right with zeros in order to prevent graphical glitches in the game.
The standard encoding is called "packed". In this mode the sprite is packed using run-length encoding and literal coding mixed for optimisation to produce a small sprite.
The last encoding mode "transparent" is like packed. But here we know that the index 0 will be transparent so we can clip off all 0 pixels from the left and right edge of the sprite. This will produce the smallest sprite possible on the Lynx. The sprite is not rectangular anymore.
The sprite is painted around the Anchor point. The anchor point x can be between 0 and the width of the sprite - 1. If anchor point x is zero then painting the sprite in location 10,20 will set the left edge of the sprite 10 pixels from the left of the Lynx screen. When the sprite is scaled by hardware the anchor point stays in place and the sprite grows or shrinks around the anchor point. The default value is 0 (left).
The sprite is painted around the Anchor point. The anchor point y can be between 0 and the height of the sprite - 1. If anchor point y is zero then painting the sprite in location 10,20 will set the top of the sprite 20 pixels from the top of the Lynx screen. When the sprite is scaled by hardware the anchor point stays in place and the sprite grows or shrinks around the anchor point. The default value is 0 (top).