Hi everyone!
I work for a company where we use Zig in production.
In particular, we built a virtual makeup try on that runs on WebAssembly for the Korean makeup manufacturer Ameli. You can try it directly for yourself here. Don’t worry, we don’t store any images, since all the processing is done locally on the end device.
My employer, B factory, has agreed to letting me release the foundation library I developed for the virtual makeup. The library features:
- Color space conversions: RGB, HSV, Lab, alpha blending
- Drawing functions: drawing lines and polygons, filling polygons
- Image processing tools: blurring, cropping, resizing
- Linear algebra: matrix operations, SVD
- Geometry: projective and similarity transforms, convex hull computation
I still haven’t uploaded all the features, but I couldn’t wait to share it with you.
Notably, the drawing and blurring parts are missing, since their current implementations are not generic enough to be in the library.
Here’s the library git repo: GitHub - bfactory-ai/zignal: Image processing library in Zig
Be sure to check the examples’ directory, where you can try the face alignment demo for yourself.
A little bit about me: I am a contributor to the dlib C++ library: http://dlib.net/
Some of the functionality in Zignal has been ported from dlib, from where I drew a lot of inspiration.
Other features were developed for Zignal first, and then ported back to dlib:
- Add HSV support by arrufat · Pull Request #2758 · davisking/dlib · GitHub
- Add draw solid polygon by arrufat · Pull Request #2775 · davisking/dlib · GitHub
- Add find_convex_hull using Graham scan by arrufat · Pull Request #2889 · davisking/dlib · GitHub
Finally, I am thrilled to share this and get some feedback: I am sure there are things that can be done better; do not hesitate to give me some advice! It’s still a work in progress.