SNA2IMG.PY(1)

NAME
sna2img.py - convert a binary file or a SCR/SKOOL/SNA/SZX/Z80 file into a PNG file

SYNOPSIS

sna2img.py [options] INPUT [OUTPUT]

DESCRIPTION

sna2img.py converts a Spectrum screenshot or other graphic data into a PNG file. INPUT may be a binary (raw memory) file, a SCR file, a skool file, or a SNA, SZX or Z80 snapshot.

OPTIONS

-b, --bfix
    When INPUT is a skool file, parse it in @bfix mode.

-B, --binary
    Read INPUT as a binary (raw memory) file.

-e, --expand MACRO
    Expand a #FONT, #SCR, #UDG or #UDGARRAY macro. The '#' prefix may be omitted, and any filename parameter is ignored.

-f, --flip N
    Flip the image horizontally (N=1), vertically (N=2), or both (N=3).

-i, --invert
    Invert video and reset the FLASH bit for cells that are flashing.

-m, --move src,size,dest
    Move a block of bytes of the given size from 'src' to 'dest'. This option may be used multiple times. 'src', 'size' and 'dest' must each be a decimal number, or a hexadecimal number prefixed by '0x'.

-n, --no-animation
    Do not animate flashing cells.

-o, --origin X,Y
    Top-left crop the image at tile coordinates (X,Y).

-O, --org ORG
    Set the origin address of a binary file. This option implies --binary. The default origin address is 65536 minus the length of the file. ORG must be a decimal number, or a hexadecimal number prefixed by '0x'.

-p, --poke a[-b[-c]],[^+]v
    POKE N,v for N in {a, a+c, a+2c..., b}. Prefix 'v' with '^' to perform an XOR operation, or '+' to perform an ADD operation. This option may be used multiple times. 'a', 'b', 'c' and 'v' must each be a decimal number, or a hexadecimal number prefixed by '0x'.

-r, --rotate N
    Rotate the image 90*N degrees clockwise.

-s, --scale SCALE
    Set the scale of the image (default=1).

-S, --size WxH
    Crop the image to this width and height (in tiles).

-V, --version
    Show the SkoolKit version number and exit.

EXAMPLES

1.  Convert game.scr into a PNG file named game.png:
    sna2img.py game.scr

2.  Convert the screenshot in game.z80 into a PNG file named scr.png at scale 2:
    sna2img.py -s 2 game.z80 scr.png

3.  Expand a #FONT macro and write the image to font.png:
    sna2img.py -e FONT32768,26 game.skool font.png

AUTHOR
Richard Dymond

COPYRIGHT
2026, Richard Dymond