A tool for organising and batch exporting SVG emoji sets.

Caius Nocturne 5e053a6050 Colormap bundling fix пре 5 месеци
docs 375d7dafab Added %b bundle shorthand for output formatting пре 5 месеци
orx 5e053a6050 Colormap bundling fix пре 5 месеци
.gitignore 0d667ec5f5 the beginnings of parameters, lots more documentation пре 5 година
README.md 670667415b Some more documentation improvements пре 1 година
cache.py c2de222ffa Removed uneccessary or broken output formats пре 1 година
check.py 2800b9e199 Change check and export steps to use the license-aware cache пре 4 година
dest_paths.py 375d7dafab Added %b bundle shorthand for output formatting пре 5 месеци
emoji.py 43ef20f9f6 Some hacky refactoring, some commenting пре 5 година
exception.py 43ef20f9f6 Some hacky refactoring, some commenting пре 5 година
export.py c2de222ffa Removed uneccessary or broken output formats пре 1 година
export_task.py c2de222ffa Removed uneccessary or broken output formats пре 1 година
export_thread.py c2de222ffa Removed uneccessary or broken output formats пре 1 година
files.py e09027009a Optimised SVGs пре 4 година
image_proc.py 97548090fc Remove svgo from image_proc пре 5 месеци
jsonutils.py 7eb5d3ec5e 0.1.0 rc пре 6 година
license.txt 8cc440e598 Changed license to CNPL пре 4 година
log.py a44b64d15a Refactor the progress bar code пре 4 година
orxport.py faf1db6994 Version bump, more doc improvements. пре 1 година
orxporter_logo.png 2ca402d6b1 Tidying stuff пре 5 година
requirements.txt f7c15ce233 Add a requirements.txt file with PyPI packages пре 5 година
svg.py 10eb17691e Fix a potential bug with counting translated colours пре 4 година
util.py c2de222ffa Removed uneccessary or broken output formats пре 1 година

README.md

Orxporter logo with 'Orxporter' next to it, in white against a lime green background.

Orxporter is a rich toolkit for organising and exporting an SVG-based emoji set. It has a system for storing emoji metadata and making large batch export operations with that metadata.


Features

  • A custom declarative language for defining your emoji semantics and metadata.
  • Color remapping that automates the production of color-modifiable emoji.
  • The ability to export emoji both as shortcode-named files (ie. 'ice_cream') and unicode codepoint-named files (ie. '1f368') simultaneously.
  • Supports multiple SVG renderers (resvg, Inkscape and ImageMagick)
  • Powerful output options including filtering, custom export directory structures and filename modifications.
  • Optional cache system so you can save a lot of time on repeat exports.
  • Multithreaded exports.
  • Metadata embedding in your exports so you can embed things like licensing information into each emoji.
  • Pretty terminal output and helpful error messages.

Format Support

Orxporter is only designed to handle SVG image inputs, so you will need an SVG-based emoji set to use Orxporter.

Orxporter can export emoji sets to the following formats:

Certain compatible formats (noted above) can support SVG or EXIF metadata embedding.

You can also export your emoji set to fonts by using Orxporter in conjunction with Forc. Forc has been designed to work seamlessly with Orxporter.


Prerequisites

Running orxporter

Install the compatible progress package by running the following in your shell:

pip install -r requirements.txt

Making the images

Orxporter depends on other software to produce everything that's not SVG.

SVG rasterisers

One SVG rasteriser is required for Orxporter to export to raster formats.

Orxporter format code format license embedding
svg SVG SVG
png PNG EXIF
pngc Crushed PNG EXIF
webp Lossless WebP not supported
jxl Lossless JPEG XL not supported
software flag in Orxporter notes
resvg (-r resvg) We recommend this one if you don't have complicated SVG elements.
Inkscape (-r inkscape) Not recommended for macOS users.
ImageMagick (-r imagemagick)

Other format exporters

To export in certain formats, you will need other software installed:

software purpose
exiftool Needed for EXIF metadata embedding
oxipng Needed for Crushed PNG (pngc) output.
webp Needed for Lossless WebP (webp) output.
libjxl Needed for Lossless JPEG XL (jxl) output.

How to use

There are two guides for using Orxporter:

Dzuk's how to guide

A detailed guide with simpler language for those who are less techincally inclined. It's not fully featured yet though.

kiilas's usage guide

The original guide, which is more concise and technical brief of how to use Orxporter. May not be up to date.


Contributors and thanks

  • @kiilas - Created the foundations of the program and the orx manifest language.
  • @AndrewMontagne - imagemagick support
  • @shello - caching, lots of fixes and stuff
  • @dzuk-mutant - documentation, code cleanup, feature additions and changes

Old changelog from 0.1.0 to 0.2.0

Thanks to the JPEG XL community with giving me some tips on adding encoder flags to improve output!


Contributions

We welcome suggestions, feature requests and collaboration in order to make Orxporter more useful for independent emoji creators and end-users. All contributors must follow Mutant Standard's code of conduct.


License

Orxporter is licensed under the Cooperative Non-Violent License (CNPL) v4.