diff options
author | stage7 <stage7@stg7.net> | 2024-09-28 23:45:49 +0200 |
---|---|---|
committer | stage7 <stage7@stg7.net> | 2024-09-28 23:45:49 +0200 |
commit | e88dcc3ceb38cb0d4494016df7556e968f97a678 (patch) | |
tree | a7b47817c9e63233b02fe9170b3278cee94331a5 | |
download | jtanimator-master.tar.gz jtanimator-master.tar.bz2 jtanimator-master.zip |
-rw-r--r-- | error.jt | 1 | ||||
-rw-r--r-- | error.png | bin | 0 -> 1077 bytes | |||
-rw-r--r-- | jtanimator.php | 46 | ||||
-rw-r--r-- | jtanimator.py | 78 | ||||
-rw-r--r-- | palette.gpl | 12 |
5 files changed, 137 insertions, 0 deletions
diff --git a/error.jt b/error.jt new file mode 100644 index 0000000..77bf01f --- /dev/null +++ b/error.jt @@ -0,0 +1 @@ +[{"data":{"aniData":[0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,79,241,207,243,205,179,141,178,12,48,0,0,79,241,207,243,205,131,143,242,7,112,0,0,79,241,207,243,205,131,143,242,7,112,0,0,71,225,207,243,204,51,140,50,15,240,7,224,64,1,207,243,207,243,141,130,15,240,7,112,64,1,0,0,74,161,197,83,200,163,133,18,8,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,74,161,197,83,200,131,133,82,2,32,0,0,66,161,197,83,200,35,132,18,10,160,5,64,64,1,197,83,202,163,133,2,10,160,5,80,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,16,8,16,0,80,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,80,1,192,3,208,3,144,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,1,196,11,212,3,144,2,4,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,11,144,10,4,0,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,8,16,16,84,25,196,19,212,11,144,10,4,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,144,10,4,16,4,8,68,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,8,17,16,84,25,197,19,212,11,145,10,5,16,4,8,69,1,196,11,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,5,16,0,0,64,1,192,3,192,3,128,2,21,0,0,0,84,17,192,3,212,3,128,10,5,16,0,8,69,1,192,11,196,3,128,2,4,0,0,0,64,1,192,3,196,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,16,0,16,0,80,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,80,1,192,3,208,3,144,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,20,0,16,0,84,1,196,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,144,2,4,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,68,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,15,144,0,0,64,1,192,3,192,3,128,2,21,0,17,0,84,1,197,3,212,3,145,2,5,0,4,0,69,1,196,3,196,3,128,2,4,0,4,0,64,1,196,3,196,3,132,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,5,16,0,0,64,1,192,3,192,3,128,2,21,0,0,0,84,1,192,3,212,3,128,2,5,0,0,0,69,1,192,3,196,3,128,2,4,0,0,0,64,1,192,3,196,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,192,3,192,3,128,2,0,0,0,0,64,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,16,0,16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,16,0,0,0,16,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,20,0,16,0,20,0,4,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,16,0,4,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,4,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,128,7,224,31,248,31,248,31,248,31,248,31,248,7,224,1,128,0,0,21,0,17,0,20,0,5,0,20,0,17,0,5,0,4,0,5,0,4,0,4,0,0,0,4,0,4,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,1,0,2,160,21,80,10,168,21,80,10,168,21,80,2,160,1,0,0,0,21,0,0,0,20,0,0,0,20,0,0,0,5,0,0,0,5,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"aniType":1,"delays":300,"frameNum":40,"pixelHeight":16,"pixelWidth":32},"dataType":0}] diff --git a/error.png b/error.png Binary files differnew file mode 100644 index 0000000..8c08e3d --- /dev/null +++ b/error.png diff --git a/jtanimator.php b/jtanimator.php new file mode 100644 index 0000000..ff04f01 --- /dev/null +++ b/jtanimator.php @@ -0,0 +1,46 @@ +<?php +$filename = "hex.png"; +$im = imagecreatefrompng($filename); +list($width, $height, $type, $attr) = getimagesize($filename); + +$bitsData = ["", "", ""]; +$pixelNumber = 0; + +for ($image = 0; $image < $height / 16; $image++) { + for ($x = 0; $x < 32; $x++) { + for ($y = 0; $y < 16; $y++) { + $col = imagecolorat($im, $x, $y + $image * 16); + if (($col >> 16) & (0xff == 255)) { $bitsData[0] .= "1"; } else { $bitsData[0] .= "0"; } + if (($col >> 8) & (0xff == 255)) { $bitsData[1] .= "1"; } else { $bitsData[1] .= "0"; } + if ($col & (0xff == 255)) { $bitsData[2] .= "1"; } else { $bitsData[2] .= "0"; } + + if ($pixelNumber > 0 && $pixelNumber % 8 == 7) { + $bitsData[0] .= ","; + $bitsData[1] .= ","; + $bitsData[2] .= ","; + } + + $pixelNumber++; + } + } +} + +$aniData = []; +$toDec = function ($value) { + return bindec($value); +}; + +for ($i = 0; $i < 3; $i++) { + $tempData = explode(",", $bitsData[$i]); + array_pop($tempData); + $tempDataDec = array_map($toDec, $tempData); + for ($j = 0; $j < count($tempDataDec); $j++) { + $aniData[] = $tempDataDec[$j]; + } +} + +echo "<pre>"; +print_r('[{"data":{"aniData":['); +print_r(implode(",", $aniData)); +print_r('],"aniType":1,"delays":300,"frameNum":' . $height / 16 . ',"pixelHeight":16,"pixelWidth":32},"dataType":0}]'); +echo "</pre>"; diff --git a/jtanimator.py b/jtanimator.py new file mode 100644 index 0000000..0a863bb --- /dev/null +++ b/jtanimator.py @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +''' +jtanimator v1.0, stage7 + +A tool to convert PNG images into animations suitable for the JTPD-03-005 LED screen. + +The source image must be an RGB PNG (not indexed) using only the provided palette, stacking frames in vertical. +The frames will be played in sequence, the first one being the topmost part. The image must be 32 pixels wide +and 16 x n pixels high, n being the number of frames the final animation will have. The output should be exported +to a file with .jt extension to be opened with the CoolLED1248 app. + +The palette is provided in GIMP format. Here it is for your reference in case you are unable to use this file: + 0 0 0 Black +255 0 0 Red + 0 255 0 Green +255 255 0 Yellow + 0 0 255 Blue +255 0 255 Magenta + 0 255 255 Cyan +255 255 255 White + +It has been tested with up to ~60 frames without issues. I have not done capacity tests so I do not know how many +frames can the screen support. Bear in mind that 60 frames already take around 30 seconds to upload from the app. +The speed of the animation can be edited in the app, but if you need something else by default you can change the +"delays" attribute in the last line. + +I ignore if this script could work with models that have a different number of LEDs only changing a few numbers. +Message me at @stage7@owo.cafe in the Fediverse if you try for yourself. I am also open to donations, just ask! + +This is free (libre) open-source software with no warranties. I will decide a license later, just please do not +do anything nasty or take this script as your own. Thank you. +''' + +import sys +import PIL.Image as Image + +if len(sys.argv) < 2: + print("ERROR: The file name is missing.") + exit() + +filename = sys.argv[1] +im = Image.open(filename) +width, height = im.size + +if width != 32: + print("ERROR: The width of the image must be 32 pixels.") + exit() + +if height % 16 != 0: + print("ERROR: The height of the image must be divisible by 16.") + exit() + +bitsData = ["", "", ""] +pixelNumber = 0 + +for image in range(int(height / 16)): + for x in range(32): + for y in range(16): + col = im.getpixel((x, y + image * 16)) + bitsData[0] += "1" if col[0] == 255 else "0" + bitsData[1] += "1" if col[1] == 255 else "0" + bitsData[2] += "1" if col[2] == 255 else "0" + + if pixelNumber > 0 and pixelNumber % 8 == 7: + bitsData[0] += "," + bitsData[1] += "," + bitsData[2] += "," + + pixelNumber += 1 + +aniData = [] +for i in range(3): + tempData = bitsData[i].split(",")[:-1] + tempDataDec = [int(x, 2) for x in tempData] + aniData.extend(tempDataDec) + +print(f'[{{"data":{{"aniData":[{",".join(map(str, aniData))}],"aniType":1,"delays":300,"frameNum":{height // 16},"pixelHeight":16,"pixelWidth":32}},"dataType":0}}]') diff --git a/palette.gpl b/palette.gpl new file mode 100644 index 0000000..10b10f8 --- /dev/null +++ b/palette.gpl @@ -0,0 +1,12 @@ +GIMP Palette +Name: JTPD-03-005 +Columns: 2 +# + 0 0 0 Black +255 0 0 Red + 0 255 0 Green +255 255 0 Yellow + 0 0 255 Blue +255 0 255 Magenta + 0 255 255 Cyan +255 255 255 White |