Правильное внедрение сжатия ArchiveLib в Python - PullRequest
1 голос
/ 05 июня 2019

Я написал модуль ввода и вывода для вышивания EmbroidePy / pyembroidery , а HUS и VIP - это два связанных, старых и популярных формата вышивания, которые используют определенный формат сжатия несуществующей функции, в частности ArchiveLib, AL_GREENLEAF_LEVEL_4.Многие наборы программного обеспечения для вышивания используют старый файл .dll al21mfc.dll, чтобы использовать правильное сжатие.Включение файла .dll не является началом, но, похоже, не существует разумных методов для плавной эмуляции несуществующего формата сжатия.

Существует приемлемо лицензированная библиотека для чтения и записи вышивок C ++ от Embroidermodder Team, котораяфактически достигнуто это, emb-compress , и я хочу сделать то же самое.

Я бы хотел иметь возможность сжимать и распаковывать эти элементы в Python и, возможно, в Java,Я бы предпочел читаемый код, но это не является обязательным требованием.

Но есть проблемы.

  • Код C ++ в libembroidery, по-видимому, декомпилирован и выглядит как бреди делает простым перенос исходного кода на неразрешимый.

  • Исходный код ArchiveLib был выпущен вместе с самим продуктом, но не может быть найден.Наличие этого может открыть некоторые средства для понимания конкретных требований, реализовать их изначально в python.

Решение не должно быть красивым.Решение не должно быть быстрым.Я рассмотрел такие вещи, как компиляция кода C ++ в некоторый байт-код, реализующий виртуальный процессор на python.Или портирование кода, похожего на тарабарщину, с другой программой, которая добавит уровни тарабарщины, или выполнение этого вручную (но это всегда удивительно быстро меня теряет).Я искал исходный код в самых темных уголках сети.И я потерпел неудачу.

Кажется, что должно быть достаточно, чтобы что-то заработало, но каждая идея кажется более сложной и менее практичной, чем следующая.Есть что-то, что я пропускаю или какая-то идея, которая может быстро заставить работать одно из этих решений?Или другое решение, которое могло бы работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...