kopia lustrzana https://github.com/backface/turtlestitch
57 wiersze
1.2 KiB
Python
Executable File
57 wiersze
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import cgi
|
|
import sys
|
|
import stitchcode
|
|
import time
|
|
import hashlib
|
|
|
|
pixels_per_millimeter = 10
|
|
|
|
def main():
|
|
|
|
data = cgi.FieldStorage();
|
|
xarr = data.getlist("x[]")
|
|
yarr = data.getlist("y[]")
|
|
jarr = data.getlist("j[]")
|
|
|
|
if len(xarr) == len(yarr) == len(jarr) and len(xarr) > 1:
|
|
emb = stitchcode.Embroidery()
|
|
|
|
lx = -99999999
|
|
ly = -99999999
|
|
|
|
fid = str(int(time.time() * 1000))
|
|
#sys.stderr.write(hashlib.sha1(str(time.time())).hexdigest())
|
|
|
|
for i in range(0, len(xarr)):
|
|
x = float(xarr[i])
|
|
y = float(yarr[i])*-1;
|
|
if jarr[i] == "true":
|
|
j = True
|
|
else:
|
|
j = False
|
|
|
|
if not(x == lx and y == ly):
|
|
emb.addStitch(stitchcode.Point(x,y,j))
|
|
lx = x
|
|
ly = y
|
|
|
|
emb.translate_to_origin()
|
|
emb.flatten()
|
|
emb.scale(27.80/pixels_per_millimeter)
|
|
emb.add_endstitches_to_jumps(10)
|
|
#emb.to_triple_stitches()
|
|
emb.save_as_png("files/%s.png" % fid,True)
|
|
emb.save_as_exp("files/%s.exp" % fid)
|
|
|
|
print "Content-Disposition: attachment; filename=%s.exp" % fid
|
|
print "Content-Type: application/octet-stream\n"
|
|
print emb.export_melco()
|
|
|
|
else:
|
|
print "Content-Type: text/html\n"
|
|
print "Error: no points or incomplete data request"
|
|
|
|
main()
|