A tool for organising and batch exporting SVG emoji sets.

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

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.