mhoward540 / qoi-nim

Nim encoder/decoder for Quite OK Image format

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

qoi-nim

Nim port of the encoder/decoder for the Quite OK Image format

This repo can be used as a standalone command-line application as well as a library for use in Nim code

The standalone application can convert to and from QOI and PNG formats

You should have Nim and nimble installed to use this code

Library Usage

git clone this repo, and navigate to the root directory. Then run nimble install, which will install the library for use with your system's Nim installation

The main functionality of the library can be imported with:

import qoi_nim/transcode

Command-line Application Usage

You can simply nimble run the code from there

Usage (from nimble): nimble run -- <infile> <outfile>
Examples:
  nimble run -- input.qoi output.png
  nimble run -- input.png output.qoi

Running tests

nimble test

Notes

Test images in this repo were pulled from qoiformat.org

The transcoder library is written in pure Nim and so should be more portable. The command-line application relies on Pixie which is not pure Nim

TODOs (no particular order)

  • Do better testing. Right now the repo is quite large due to all the image files included for testing purposes. Maybe we could use fewer images, or pull the images from the web before running the tests (could be flaky though)
  • Use more idiomatic Nim. I think there are probably some nicer ways of doing what I did in Nim
  • Get this working with the JS backend. JS versions already exist (see the qoi repo page), I just think it would be cool to get this working for the Nim repo as well
  • Do some benchmarking to understand this code's performance
  • Handling colorspaces properly in the command-line application

About

Nim encoder/decoder for Quite OK Image format

License:MIT License


Languages

Language:Nim 100.0%