All Projects → frno7 → libpes

frno7 / libpes

Licence: GPL-3.0 License
Libpes is a portable C library for encoding, decoding and transcoding the PES and SVG based machine embroidery formats.

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to libpes

pes
The Pi Entertainment System (PES) is a graphical front end for a variety of games console emulators that has been written in Python which is intended for use on the Raspberry Pi. This repository contains the PES source code and operating system customisation scripts.
Stars: ✭ 22 (-37.14%)
Mutual labels:  pes
arpes
Mirror of PyARPES (gitlab/lanzara-group/python-arpes) the open source ARPES analysis framework
Stars: ✭ 21 (-40%)
Mutual labels:  pes
pyembroidery
pyembroidery library for reading and writing a variety of embroidery formats.
Stars: ✭ 120 (+242.86%)
Mutual labels:  embroidery

libpes

libpes is a portable C library for encoding, decoding and transcoding the PES and SVG based machine embroidery formats. The PES format is a machine embroidery file format for Brother Industries and Bernina International series of embroidery machines, among others. PES files contain sewing coordinates for stitches and corresponding thread colors.

Build

CMake

Tools

  • pes-info prints out internal PES data structures for a given PES file.
  • pes-to-svg-emb converts a PES file to a corresponding SVG embroidery file.
  • svg-emb-to-pes is the reverse of pes-to-svg-emb and as such the conversion is limited to the SVG embroidery format as a subset of SVG generated by pes-to-svg-emb.

PES embroidery format description

Check the PES format wiki.

SVG embroidery format

libpes implements a prototype SVG embroidery format with the intention of being a vendor neutral format that is more convenient to display, generate and modify than PES or other proprietary formats. The idea more specifically is to represent machine embroidery instructions in the SVG format, as opposed to general rendering of SVG. As of this particular implementation only path elements are supported with mandatory stroke and d attributes, as shown in the example below.

SVG embroidery example

examples/envelope.svg is an example of SVG embroidery. It contains a single path element with seven (x,y) coordinate pairs forming a shape of an envelope:

<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="8.0mm" height="5.0mm" version="1.1"
     viewBox="0.0 0.0 8.0 5.0" xmlns="http://www.w3.org/2000/svg">
  <path stroke="#000000" fill="none" stroke-width="0.4"
        d="M 8.0 0.0 L 0.0 0.0 L 0.0 5.0 L 8.0 5.0
           L 8.0 0.0 L 4.0 2.0 L 0.0 0.0" />
</svg>

Licence

See the LICENCE file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].