EmbroidePy / pyembroidery

pyembroidery library for reading and writing a variety of embroidery formats.
MIT License
181 stars 33 forks source link

File Extensions VIP, PCS, SEW inkstitch/inkstitch#1310 #129

Open tatarize opened 2 years ago

tatarize commented 2 years ago

@LindaMcM @whitneywhitford @kaalleen

VIP requires a sort of specialty form of compression that became defunct in 1995 (Robert Jung licensed source code to GreenLeaf which since went out of business). I spent a year or so solving it so it should be possible to read and write that data format.

PCS needs some additional work, while it's a somewhat standard format, though unusual for its use of absolute rather than relative positions. There's some errors and unknowns with regard to the number of lines. The older libembroidery parsing of that information was contradictory in the production and generation of the data.

SEW is a pretty reasonable format though it has a weird giant set of 1 bit graphics at the very start. Writing the file formats tends to require writing these sorts of graphics. Though there's something similar in PES that is written fairly similarly.


The VIP compression might need physically testing on an actual machine since the method of performing small window .arj compression that I worked out was to cheat and developed a compression header that performs a no-op command. Similarly this could be done for .HUS files which were developed around this same time, I code the reader but I haven't bothered doing the writing format, but I really would need somebody with the an old machine that actually read the format to prove my cheat actually works.

https://stackoverflow.com/questions/56464710/properly-implementing-archivelib-compression-in-python