imgar commited on
Commit
83201c0
·
1 Parent(s): 63fbc3b

Add application file

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
backend.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from flask import Flask
3
+ from flask_cors import CORS
4
+
5
+ from PIL import Image
6
+ import numpy as np
7
+ import potrace
8
+
9
+ app = Flask(__name__)
10
+ CORS(app)
11
+
12
+ FRAMES = 5258
13
+
14
+ def png_to_np_array(filename):
15
+ img = Image.open(filename)
16
+ data = np.array(img.getdata()).reshape(img.size[1], img.size[0], 3)
17
+ bindata = np.zeros((img.size[1], img.size[0]), np.uint32)
18
+ for i, row in enumerate(data):
19
+ for j, byte in enumerate(row):
20
+ bindata[img.size[1]-i-1, j] = 1 if sum(byte) < 127*3 else 0
21
+ # print('###' if bindata[i, j] == 1 else ' ', end='')
22
+ # print()
23
+ return bindata
24
+
25
+ def png_to_svg(filename):
26
+ data = png_to_np_array(filename)
27
+ bmp = potrace.Bitmap(data)
28
+ path = bmp.trace()
29
+ return path
30
+
31
+ frame_coords = []
32
+
33
+ for i in range(FRAMES):
34
+
35
+ latex = []
36
+
37
+ path = png_to_svg('frames/frame%d.png' % (i+1))
38
+
39
+ for curve in path.curves:
40
+ segments = curve.segments
41
+ start = curve.start_point
42
+ for segment in segments:
43
+ x0, y0 = start
44
+ if segment.is_corner:
45
+ x1, y1 = segment.c
46
+ x2, y2 = segment.end_point
47
+ latex.append('((1-t)%f+t%f,(1-t)%f+t%f)' % (x0, x1, y0, y1))
48
+ latex.append('((1-t)%f+t%f,(1-t)%f+t%f)' % (x1, x2, y1, y2))
49
+ else:
50
+ x1, y1 = segment.c1
51
+ x2, y2 = segment.c2
52
+ x3, y3 = segment.end_point
53
+ latex.append('((1-t)((1-t)((1-t)%f+t%f)+t((1-t)%f+t%f))+t((1-t)((1-t)%f+t%f)+t((1-t)%f+t%f)),\
54
+ (1-t)((1-t)((1-t)%f+t%f)+t((1-t)%f+t%f))+t((1-t)((1-t)%f+t%f)+t((1-t)%f+t%f)))' % \
55
+ (x0, x1, x1, x2, x1, x2, x2, x3, y0, y1, y1, y2, y1, y2, y2, y3))
56
+ start = segment.end_point
57
+
58
+ frame_coords.append(latex)
59
+
60
+ @app.route('/')
61
+ def index():
62
+ return json.dumps(frame_coords)
63
+
64
+ app.run()
calc_thumb.png ADDED
frames/frame1.png ADDED

Git LFS Details

  • SHA256: 7a876f35e38f7d400305b1f7455f15534462be8aaf0d7dc39ba90c77993eed37
  • Pointer size: 128 Bytes
  • Size of remote file: 604 Bytes
frames/frame10.png ADDED

Git LFS Details

  • SHA256: 7a876f35e38f7d400305b1f7455f15534462be8aaf0d7dc39ba90c77993eed37
  • Pointer size: 128 Bytes
  • Size of remote file: 604 Bytes
frames/frame100.png ADDED

Git LFS Details

  • SHA256: 05aba4c6f96621f0e540a6c11beb5075ef7b2953695f4e592f6fb6b898d454dd
  • Pointer size: 130 Bytes
  • Size of remote file: 15.3 kB
frames/frame1000.png ADDED

Git LFS Details

  • SHA256: 0ec943d54347a9dcb1dc48d69f2586b8ab3b9ed8c9c683c437a74ba2db24dca9
  • Pointer size: 129 Bytes
  • Size of remote file: 7.97 kB
frames/frame1001.png ADDED

Git LFS Details

  • SHA256: 91a309c58f16e5b0557b86c30a0c021e72078c5ce9ff1f38699787506c7d85d3
  • Pointer size: 129 Bytes
  • Size of remote file: 8.14 kB
frames/frame1002.png ADDED

Git LFS Details

  • SHA256: d40281f06efd6123d3c74be84926b00bed6935a72dd958f5e6872cbcb1288a1f
  • Pointer size: 129 Bytes
  • Size of remote file: 8.3 kB
frames/frame1003.png ADDED

Git LFS Details

  • SHA256: 1232bccbc103ac9b5501f32f9d90551e6febb0bc6f63edffe49abfbe29fa3fce
  • Pointer size: 130 Bytes
  • Size of remote file: 11.1 kB
frames/frame1004.png ADDED

Git LFS Details

  • SHA256: 4365af90225e05241f6f1f12aecb5a98acf0259f6866191ae526e9490dda45d9
  • Pointer size: 130 Bytes
  • Size of remote file: 12 kB
frames/frame1005.png ADDED

Git LFS Details

  • SHA256: 3bc857f1c7aabc308e9ff77d14d9252c35edd13ea8ec16c46b38a06430bb3ca7
  • Pointer size: 130 Bytes
  • Size of remote file: 12.9 kB
frames/frame1006.png ADDED

Git LFS Details

  • SHA256: 5aa5b37d3772f0f1404f5b236f7974af671ae5c9e1b840091e7a9b543da090eb
  • Pointer size: 130 Bytes
  • Size of remote file: 13.5 kB
frames/frame1007.png ADDED

Git LFS Details

  • SHA256: f6eea277ef917936009fa65b53603c3bdcbefa874f9d6e8a23f5d52d1c7cf9bc
  • Pointer size: 130 Bytes
  • Size of remote file: 14 kB
frames/frame1008.png ADDED

Git LFS Details

  • SHA256: 4bf9b922dbc034e71f0b1100c4b8ff4a7e85c8fe92813879b5a5e301a64beb6c
  • Pointer size: 130 Bytes
  • Size of remote file: 13.3 kB
frames/frame1009.png ADDED

Git LFS Details

  • SHA256: ba8b2978b63eeacc5647a43773077282336276a13f660d3b8f9be74e53f82d57
  • Pointer size: 130 Bytes
  • Size of remote file: 13.7 kB
frames/frame101.png ADDED

Git LFS Details

  • SHA256: 1b013b8325fd4f8724808e8b3ce61a8b3bc4ff8f6bf65705e0e3dae1b184f94c
  • Pointer size: 130 Bytes
  • Size of remote file: 14.8 kB
frames/frame1010.png ADDED

Git LFS Details

  • SHA256: 21d9770910186ea0e5a0c0a37c7650dcd5e5f53107d842e8102479b7c95771c2
  • Pointer size: 130 Bytes
  • Size of remote file: 14.2 kB
frames/frame1011.png ADDED

Git LFS Details

  • SHA256: a2cae0315045741d037e02c6abdadee1f4328dad27f46c655a64eac6cfa1ba17
  • Pointer size: 130 Bytes
  • Size of remote file: 10.5 kB
frames/frame1012.png ADDED

Git LFS Details

  • SHA256: 1147d1d8142b2428ccacaedb987211dcd11abba5229807bec03f9f790b2f4e6f
  • Pointer size: 129 Bytes
  • Size of remote file: 8.64 kB
frames/frame1013.png ADDED

Git LFS Details

  • SHA256: 30ba602c0af04fbe28b884b5bdd99061a96b790a6900b4ba8d2df0a9b863880e
  • Pointer size: 129 Bytes
  • Size of remote file: 9.93 kB
frames/frame1014.png ADDED

Git LFS Details

  • SHA256: 9b172cdadb79f8b7abdfa1333394787f7d7f5c8cdf740ea07172b909e5aa35b4
  • Pointer size: 130 Bytes
  • Size of remote file: 10.7 kB
frames/frame1015.png ADDED

Git LFS Details

  • SHA256: 0b0236b35021b0088acb1030ff33db2f600e0bfb16685c977524ba16be037185
  • Pointer size: 130 Bytes
  • Size of remote file: 13 kB
frames/frame1016.png ADDED

Git LFS Details

  • SHA256: 0c478b68071c4a9af852c1a33f25167eef1d5d7d81bf0e054fa33c85ab47fcb1
  • Pointer size: 130 Bytes
  • Size of remote file: 13.9 kB
frames/frame1017.png ADDED

Git LFS Details

  • SHA256: 4456cad8d06e64004bda0223b36b6cd4e6c8af5a9fb418ae92ba1afd682f748d
  • Pointer size: 130 Bytes
  • Size of remote file: 15.1 kB
frames/frame1018.png ADDED

Git LFS Details

  • SHA256: a0a8954b780dfa244926530bc36928aff8eab6bb82875b64e3098f5c5d67f97a
  • Pointer size: 130 Bytes
  • Size of remote file: 16.4 kB
frames/frame1019.png ADDED

Git LFS Details

  • SHA256: 9f818f1e84025fd55aa45d5c970c01fa5bf8febdfd1c2fe6b1815908d6b10542
  • Pointer size: 130 Bytes
  • Size of remote file: 18 kB
frames/frame102.png ADDED

Git LFS Details

  • SHA256: 386321cc7e090ff0fe95c43135f8d116eb752bbd8075021bf8f80a19d8035b4c
  • Pointer size: 130 Bytes
  • Size of remote file: 14.4 kB
frames/frame1020.png ADDED

Git LFS Details

  • SHA256: f22142e641fa9d40de9443a76f42bfb32621a841101e98ac71338bd6beb2bd32
  • Pointer size: 130 Bytes
  • Size of remote file: 18.2 kB
frames/frame1021.png ADDED

Git LFS Details

  • SHA256: ef893ff81905e6d00a23bc2c84859e7fbf5694f19806da85139bd611c2dfbe49
  • Pointer size: 130 Bytes
  • Size of remote file: 17.4 kB
frames/frame1022.png ADDED

Git LFS Details

  • SHA256: f9e0511dec1119ad8203d68d69760f8e16d6e359152d9f0d4a8cc0058402d715
  • Pointer size: 130 Bytes
  • Size of remote file: 18.1 kB
frames/frame1023.png ADDED

Git LFS Details

  • SHA256: abeba8652d6d9fd87a64ca39e38527e7982bd262f3735d237f1a00e688e38790
  • Pointer size: 130 Bytes
  • Size of remote file: 18.7 kB
frames/frame1024.png ADDED

Git LFS Details

  • SHA256: 2f1a61a5c2f8299100204b4c987af2e13c49aaf6246cb88724ac1e027fc7ad8e
  • Pointer size: 130 Bytes
  • Size of remote file: 19 kB
frames/frame1025.png ADDED

Git LFS Details

  • SHA256: df50a7de2f34d0518f9e7d6614599c349f11b938a84e8ed71de1fa42be2bae4d
  • Pointer size: 130 Bytes
  • Size of remote file: 18.5 kB
frames/frame1026.png ADDED

Git LFS Details

  • SHA256: 3cb48eb516e5c895b746ee9a1b385c898fc55273f850622a2841990a5c8a3fde
  • Pointer size: 130 Bytes
  • Size of remote file: 19.1 kB
frames/frame1027.png ADDED

Git LFS Details

  • SHA256: 40d05a675e571fc392731c3ec9a10ce25518bb5350edbf167a416a545128c1a0
  • Pointer size: 130 Bytes
  • Size of remote file: 21.4 kB
frames/frame1028.png ADDED

Git LFS Details

  • SHA256: ff38bcdbe1751d3025f65fe015597f6268d3eb4028e7c5a95046c2ee9bfdff63
  • Pointer size: 130 Bytes
  • Size of remote file: 21.8 kB
frames/frame1029.png ADDED

Git LFS Details

  • SHA256: 7026ddda47ef92d936194aadab22e3d43d098bf647eb6fc540f9bdf8fb50dd3d
  • Pointer size: 130 Bytes
  • Size of remote file: 21.8 kB
frames/frame103.png ADDED

Git LFS Details

  • SHA256: 4b952c3bf621afe334e86331c8bcc657229196d3fc5af7ab7a16a20258988de2
  • Pointer size: 130 Bytes
  • Size of remote file: 15.4 kB
frames/frame1030.png ADDED

Git LFS Details

  • SHA256: d9e3156d005c2c97ef896c159b6936a162b71a58fd0ada47c5db82dab757be75
  • Pointer size: 130 Bytes
  • Size of remote file: 22.5 kB
frames/frame1031.png ADDED

Git LFS Details

  • SHA256: 0e0df5736095556b710d1ceb766a23d3e5e1356910d9505d9f155c2133b31aa3
  • Pointer size: 130 Bytes
  • Size of remote file: 20.9 kB
frames/frame1032.png ADDED

Git LFS Details

  • SHA256: 9a2d5a4099e8b29cd7c49cbd0a6b20550d05a7f5e0edc56be663b9ee25367b5e
  • Pointer size: 130 Bytes
  • Size of remote file: 20.9 kB
frames/frame1033.png ADDED

Git LFS Details

  • SHA256: 0fd997a1d24bcfaebb0743652b9118962ed4a14489596a7129027e72e0727045
  • Pointer size: 130 Bytes
  • Size of remote file: 21.8 kB
frames/frame1034.png ADDED

Git LFS Details

  • SHA256: 3e151f52b50b232b60b0cad5a5845e784345b89549b2d199ba8bf0a4222eda25
  • Pointer size: 130 Bytes
  • Size of remote file: 24.5 kB
frames/frame1035.png ADDED

Git LFS Details

  • SHA256: dbd4f68ce57dd0d76981357c8b9350116ed81f027c5090778b98d0f3dbdddb7e
  • Pointer size: 130 Bytes
  • Size of remote file: 26.9 kB
frames/frame1036.png ADDED

Git LFS Details

  • SHA256: 2c04c5471dd798f4e667d7399764da888812f66619932747ed8a5b0ebdaca445
  • Pointer size: 130 Bytes
  • Size of remote file: 24.8 kB
frames/frame1037.png ADDED

Git LFS Details

  • SHA256: c78473230c46950c8ffea6449bdfaf825a451a5c4cd75fe1aad62e4e61c2d13e
  • Pointer size: 130 Bytes
  • Size of remote file: 21.5 kB
frames/frame1038.png ADDED

Git LFS Details

  • SHA256: c471f4c2d585b7a4b59f324b7f2bd1e11b71cc7893839a7a5d8aa0b3b53289a2
  • Pointer size: 130 Bytes
  • Size of remote file: 17.4 kB
frames/frame1039.png ADDED

Git LFS Details

  • SHA256: ad8a31814febddf456530a057638434df08d8ec19cf285d81b23ec3137f5edf5
  • Pointer size: 129 Bytes
  • Size of remote file: 8.19 kB
frames/frame104.png ADDED

Git LFS Details

  • SHA256: c056a51662bad13dea1348ed85b6ca0b825acfe2bbff998e4f2a5867cd489280
  • Pointer size: 130 Bytes
  • Size of remote file: 15.2 kB
frames/frame1040.png ADDED

Git LFS Details

  • SHA256: 3daf780dc7a94f95b71b9fd134eb7ecfba3df145c8de50e12328fb576e12d6cb
  • Pointer size: 129 Bytes
  • Size of remote file: 8.02 kB