pyembroidery/pyembroidery/ZhsReader.py

35 wiersze
801 B
Python

from .ReadHelper import signed8, read_int_32le
def read_zhs_stitches(f, out):
count = 0
while True:
count += 1
b = bytearray(f.read(3))
if len(b) != 3:
break
ctrl = b[0]
if ctrl == 0x10:
pass
x = signed8(b[1])
y = signed8(b[2])
if ctrl == 0x02:
out.stitch(x, y)
continue
if ctrl == 0x01:
out.move(x, y)
continue
if ctrl == 0x04:
out.color_change()
continue
if ctrl == 0x80:
break
out.end()
def read(f, out, settings=None):
f.seek(0x0F, 0)
stitch_start_position = read_int_32le(f)
f.seek(stitch_start_position, 0)
read_zhs_stitches(f, out)