blob: 4eca2e5d26887d8cc8660148907dcc0716579ddc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# PNG to QOI conversion utility
A simple utility which recursively converts PNG images to the [QOI](https://qoiformat.org/) image format. I used this project to learn about writing multi-threaded non-blocking io code in the [Odin](https://odin-lang.org/) programming language.
## Features
* Converts PNG data to match QOI data layout automatically.
* Very fast multi-threaded IO (250mb of 16bit PNG data converts in less than 2s on my 2015 Dell XPS 15).
## Usage
Run the executable and it will find every .png file in its own directory plus sub-directories and save a .qoi copy.
Alternatively you can pass a specific directory as input either by the command line or by clicking and dragging a directory onto the executable itself and it will only convert the .png files within that directory/subdirectories.
## Building
Requires an odin compiler and core packages.
To build, simply run:
```sh
odin build .
```
Or for a highly optimised build that executes orders of magnitude faster you could run this:
```sh
odin build . -o:aggressive -linker:lld -lto:thin-files -microarch:native -out:png_to_qoi_util.exe
```
## Notes
* I didn't bother adding a replace file argument or support for other image formats, it just does exactly what I need for now.
* Clicking and dragging a directory onto the executable works on windows but might not work on other platforms/file managers.
* GPLv3 Licensed.
|