No Description

Getty Ritter 049c16b8c6 readme 3 months ago
src 21113edc58 clippy 3 months ago
tools ef7e4dd58a add some more editor functionality 3 months ago
.gitignore cac975bd57 basic working hard-coded program 2 years ago
Cargo.lock ef7e4dd58a add some more editor functionality 3 months ago
Cargo.toml ef7e4dd58a add some more editor functionality 3 months ago
README.md 049c16b8c6 readme 3 months ago

README.md

thyme is a tool for creating cross-stitch patterns from PNG files of pixel art.

Thyme tools

Right now, there are four tools under development:

  • thyme-from-png takes a PNG file as well as a YAML file that describes the color palette and packs them together into a .thyme file.
  • svg-from-thyme takes a .thyme file and converts it into an SVG file representing the pattern.
  • svg-from-png takes the same information as thyme-from-png but produces the SVG file directly.
  • thyme-editor is a GTK4-based GUI editor to create, view, and edit .thyme files.

Thyme file format

A thyme file is a zip file. If unzipped, it will contain the following files:

  • THYME_VERSION: the file format version, currently 0. This may eventually be able to foster backwards-compatibility.
  • dimensions.json: a JSON array with two numeric values, corresponding to the width and the height.
  • metadata.json: a JSON object with free-form keys and string values. This is currently unused, but will be used to include metadata including pattern name, author, modified dates, and so forth.
  • palette.json: a JSON array containing objects representing color definitions. Right now, each color has three fields: name (a human-readable color name), symbol (a single-character string representing a symbol to use in a rendered chart), and color (a three-element array representing the RGB representation of a color.) This is subject to change in future versions.
  • payload.json: a JSON array whose length should be equal to width * height. Each element is either null (which means there is no stitch present) or a two-element array containing two numbers: the first number represents the stitch type (right now, full or half) and the second is an index into the palette array.

The details of this file format are subject to change.