Add application file
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- backend.py +64 -0
- calc_thumb.png +0 -0
- frames/frame1.png +3 -0
- frames/frame10.png +3 -0
- frames/frame100.png +3 -0
- frames/frame1000.png +3 -0
- frames/frame1001.png +3 -0
- frames/frame1002.png +3 -0
- frames/frame1003.png +3 -0
- frames/frame1004.png +3 -0
- frames/frame1005.png +3 -0
- frames/frame1006.png +3 -0
- frames/frame1007.png +3 -0
- frames/frame1008.png +3 -0
- frames/frame1009.png +3 -0
- frames/frame101.png +3 -0
- frames/frame1010.png +3 -0
- frames/frame1011.png +3 -0
- frames/frame1012.png +3 -0
- frames/frame1013.png +3 -0
- frames/frame1014.png +3 -0
- frames/frame1015.png +3 -0
- frames/frame1016.png +3 -0
- frames/frame1017.png +3 -0
- frames/frame1018.png +3 -0
- frames/frame1019.png +3 -0
- frames/frame102.png +3 -0
- frames/frame1020.png +3 -0
- frames/frame1021.png +3 -0
- frames/frame1022.png +3 -0
- frames/frame1023.png +3 -0
- frames/frame1024.png +3 -0
- frames/frame1025.png +3 -0
- frames/frame1026.png +3 -0
- frames/frame1027.png +3 -0
- frames/frame1028.png +3 -0
- frames/frame1029.png +3 -0
- frames/frame103.png +3 -0
- frames/frame1030.png +3 -0
- frames/frame1031.png +3 -0
- frames/frame1032.png +3 -0
- frames/frame1033.png +3 -0
- frames/frame1034.png +3 -0
- frames/frame1035.png +3 -0
- frames/frame1036.png +3 -0
- frames/frame1037.png +3 -0
- frames/frame1038.png +3 -0
- frames/frame1039.png +3 -0
- frames/frame104.png +3 -0
- frames/frame1040.png +3 -0
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
|
frames/frame10.png
ADDED
|
Git LFS Details
|
frames/frame100.png
ADDED
|
Git LFS Details
|
frames/frame1000.png
ADDED
|
Git LFS Details
|
frames/frame1001.png
ADDED
|
Git LFS Details
|
frames/frame1002.png
ADDED
|
Git LFS Details
|
frames/frame1003.png
ADDED
|
Git LFS Details
|
frames/frame1004.png
ADDED
|
Git LFS Details
|
frames/frame1005.png
ADDED
|
Git LFS Details
|
frames/frame1006.png
ADDED
|
Git LFS Details
|
frames/frame1007.png
ADDED
|
Git LFS Details
|
frames/frame1008.png
ADDED
|
Git LFS Details
|
frames/frame1009.png
ADDED
|
Git LFS Details
|
frames/frame101.png
ADDED
|
Git LFS Details
|
frames/frame1010.png
ADDED
|
Git LFS Details
|
frames/frame1011.png
ADDED
|
Git LFS Details
|
frames/frame1012.png
ADDED
|
Git LFS Details
|
frames/frame1013.png
ADDED
|
Git LFS Details
|
frames/frame1014.png
ADDED
|
Git LFS Details
|
frames/frame1015.png
ADDED
|
Git LFS Details
|
frames/frame1016.png
ADDED
|
Git LFS Details
|
frames/frame1017.png
ADDED
|
Git LFS Details
|
frames/frame1018.png
ADDED
|
Git LFS Details
|
frames/frame1019.png
ADDED
|
Git LFS Details
|
frames/frame102.png
ADDED
|
Git LFS Details
|
frames/frame1020.png
ADDED
|
Git LFS Details
|
frames/frame1021.png
ADDED
|
Git LFS Details
|
frames/frame1022.png
ADDED
|
Git LFS Details
|
frames/frame1023.png
ADDED
|
Git LFS Details
|
frames/frame1024.png
ADDED
|
Git LFS Details
|
frames/frame1025.png
ADDED
|
Git LFS Details
|
frames/frame1026.png
ADDED
|
Git LFS Details
|
frames/frame1027.png
ADDED
|
Git LFS Details
|
frames/frame1028.png
ADDED
|
Git LFS Details
|
frames/frame1029.png
ADDED
|
Git LFS Details
|
frames/frame103.png
ADDED
|
Git LFS Details
|
frames/frame1030.png
ADDED
|
Git LFS Details
|
frames/frame1031.png
ADDED
|
Git LFS Details
|
frames/frame1032.png
ADDED
|
Git LFS Details
|
frames/frame1033.png
ADDED
|
Git LFS Details
|
frames/frame1034.png
ADDED
|
Git LFS Details
|
frames/frame1035.png
ADDED
|
Git LFS Details
|
frames/frame1036.png
ADDED
|
Git LFS Details
|
frames/frame1037.png
ADDED
|
Git LFS Details
|
frames/frame1038.png
ADDED
|
Git LFS Details
|
frames/frame1039.png
ADDED
|
Git LFS Details
|
frames/frame104.png
ADDED
|
Git LFS Details
|
frames/frame1040.png
ADDED
|
Git LFS Details
|