classDiagram
Stick : +string name
Stick : +int pixels
Stick : +int maxColourDepth ??
StickImage : +String filename
StickImage : +String stickName
StickImage : +String imageData
StickImage : +isMammal()
note for StickImage "https://pillow.readthedocs.io/en/stable/reference/PixelAccess.html"
StickFrame : +String stickImageFilename
StickFrame : +Int frameNumber
StickFrame : -[PIL] data
StickFrame : +String type
StickFrame : +analyse()
StickFrame : +compress()
StickFrame : +getNextColumn()
StickFrame : +save()
StickFrame : +load()
StickFrame24bit :
StickFrame24bit : +compress()
StickFrame24bit : +getNextColumn()
StickFrame16bit :
StickFrame16bit : +compress()
StickFrame16bit : +getNextColumn()
StickFrame8bit :
StickFrame8bit : +compress()
StickFrame8bit : +getNextColumn()
StickFrame1bit :
StickFrame1bit : +compress()
StickFrame1bit : +getNextColumn()
note for StickFrame1bit "Run Length Encoding\nhttps://tinyurl.com/2h54atwk"
note for StickFrame "https://www.geeksforgeeks.org/use-yield-keyword-instead-return-keyword-python/"
StickFramePalleted : +List~int~ pallete
StickFramePalleted : +colourDepth
StickFramePalleted : +compress()
StickFramePalleted : +getNextColumn()
StickFrame --|> StickFrame24bit
StickFrame --|> StickFrame16bit
StickFrame --|> StickFrame8bit
StickFrame --|> StickFramePalleted
StickFramePalleted --|> StickFrame1bit
StickImage o-- StickFrame : 1\n*
Stick <-- StickImage